asymetric crypto不是为了你想要做的...
非对称加密通常用于混合解决方案,以加密用于加密实际数据的对称加密系统的密钥
所以你通常会有这样的事情:
您的数据+对称(随机)密钥(K) - > symetric cipher(例如AES) - >密文
接收者的K +公共不对称密钥 - >不对称密码 - >柯
然后你将密文和Ke转发给收件人
如果你想问一下这与你的问题有什么关系:
K通常小于非对称密码的最大数据大小,而普通纯文本数据则不然
经过更多的研究,我找到了帮助我的东西。它不是我正在寻找的100%(与明文大小错误相关),但帮助我以一种方式使用签名解决问题。这是链接,我确实找到了信息:
http://e1ven.com/2011/04/06/how-to-use-m2crypto-tutorial
例如,使用RSA密钥加密数据时,您希望使用OAEP填充填充数据。无论你的明文有多小,比如“今天”,它都会被填充到密钥的全模数,例如: 1024位。如果您接下来尝试使用相同大小的密钥加密它,它将不适合。没有空间再次填充。你需要一个更大的钥匙,或者你不需要垫。不填充是一个很大的错误 - 你需要填充是安全的。
为什么你要加密两次呢?它并没有让它更安全。你在设计自己的计划吗?这将是有风险的。
你为什么要签密码?密文上的数字签名正在签署一份难以理解的乱码文件 - 尝试在法庭面前签名。为什么不加一个MAC?