加密matlab结构的一部分

时间:2015-11-25 02:03:48

标签: matlab encryption struct

MATLAB .mat文件将在40-50人之间共享,它将包含费用数字。这个.mat用于一些精心计算,但成本数字不应公开显示,除非极少数(40-50人中有1-2人)。

所以1-2人希望保持“暴露”状态。此.mat文件的版本

a.dim.a = 1
a.dim.b = 2
a.dim.c = 3
a.cost.x = 11
a.cost.y = 12

然后放置隐藏的'其他人共享驱动器上的版本。

a.dim.a = 1
a.dim.b = 2
a.dim.c = 3
a.cost.x = ADSAUJ#$#I
a.cost.y = SDHAUWH#@$

请注意m脚本正在处理此.mat文件,因此密钥对加密并不正确,因为它不是我们试图阻止第三方窥探的情况我们的数据。关于让一些人的生活变得有点困难,但如果他们努力工作,他们就可以揭露数字。所以我想问你认为最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

数据在结构中的事实并不真正相关,问题是如何加密数据,遗憾的是MATLAB没有内置的加密功能。但不要担心,因为它们可以在Java中找到 - 可以从MATLAB访问。

您可以根据您的要求调整the following

import javax.crypto.Cipher;
% The text to encrypt.
plaintext = 'foobar'; 

% Use RSA    
cipher = Cipher.getInstance('RSA');
% Generate a key pair
keygen = java.security.KeyPairGenerator.getInstance('RSA');
keyPair = keygen.genKeyPair();
cipher.init(Cipher.ENCRYPT_MODE, keyPair.getPrivate());

% Convert your input to bytes
plaintextUnicodeVals = uint16(plaintext);
plaintextBytes = typecast(plaintextUnicodeVals, 'int8');

% Encrypt
ciphertext = cipher.doFinal(plaintextBytes)'  %'

% And decrypt again...
cipher.init(Cipher.DECRYPT_MODE, keyPair.getPublic());
decryptedBytes = cipher.doFinal(ciphertext);
decryptedText = char(typecast(decryptedBytes, 'uint16'))'