我正在尝试在我的Java应用程序中实现一些加密。 加密应该如下工作:
我无法确定要使用的填充算法。我读OAEPWithSHA-1AndMGF1Padding
是一个不错的选择,但是我可以加密的最大消息长度是多少?
我需要知道使用带有OAEPWithSHA-1AndMGF1Padding
的RSA加密我的AES密钥的确切最大字节数。
RSA密钥的长度也有所不同。我可能会去2048位。
TL; DR:我可以使用带有OAEPWithSHA-1AndMGF1Padding
的2048位RSA密钥加密多少字节?
答案 0 :(得分:6)
您所描述的内容称为Hybrid Encryption,是获得对称密钥加密系统速度的常用方法,并结合RSA的两个密钥的优势。
至于细节:
2048位RSA密钥允许256个字节的OAEP填充占用42个字节,大约214个字节用于加密数据。 AES-256密钥长度为256位(32字节),因此有足够的空间。