首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加密matlab结构的某些部分

加密matlab结构的某些部分
EN

Stack Overflow用户
提问于 2015-11-25 10:03:48
回答 1查看 157关注 0票数 2

MATLAB的.mat文件将在40-50人之间共享,其中将包括成本数字。这个.mat用于一些详细的计算,但是成本数字不应该公开,除了极少数人(40-50人中有1-2人)。

因此,1-2人希望保留此.mat文件的“公开”版本

代码语言:javascript
复制
a.dim.a = 1
a.dim.b = 2
a.dim.c = 3
a.cost.x = 11
a.cost.y = 12

然后将“隐藏”版本放在共享驱动器上,供其他所有人使用。

代码语言:javascript
复制
a.dim.a = 1
a.dim.b = 2
a.dim.c = 3
a.cost.x = ADSAUJ#$#I
a.cost.y = SDHAUWH#@$

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

EN

回答 1

Stack Overflow用户

发布于 2015-11-25 10:28:25

事实上,数据在结构中并不是真正相关的,问题是如何加密数据,不幸的是MATLAB没有内置的加密函数。但是不要害怕,因为它们可以在Java中找到--它可以从MATLAB访问。

您可以根据自己的需求调整the following

代码语言:javascript
复制
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'))'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33907319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档