RSA 加密,长度变差

2024-01-06

当调用以下函数时:

byte[] bytes = rsa.Encrypt(System.Text.UTF8Encoding.UTF8.GetBytes(stringToEncrypt), true);

我现在收到错误:长度错误。

对于较小的字符串,它可以工作,任何想法可能是我传递的字符串的问题都在 200 个字符以下。


RSA 加密仅适用于少量数据,您可以加密的数据量取决于您使用的密钥的大小,例如对于 1024 位 RSA 密钥和 PKCS #1 V1.5 填充,您可以加密最多117字节,使用2048个RSA密钥,可以加密245字节。

这是有充分理由的,非对称加密的计算成本很高。如果你想加密大量数据,你应该使用对称加密。但如果你想要不可否认性怎么办?那么你要做的就是同时使用两者。您创建一个对称密钥并使用非对称加密交换它,然后安全地交换对称密钥来加密您的大量数据。这就是 SSL 和 WS-Secure 在幕后使用的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RSA 加密,长度变差 的相关文章

随机推荐