RSA加解密问题

在做项目中为了安全考虑会对数据进行加密,这里使用了RSA进行加密。
总结如下:
特点:公钥加密私钥解密;私钥签名公钥认证;公钥就是通过私钥生成的。
优点:非对称加密,安全性高;
缺点:加解密效率低,耗费性能因此不适合对大量数据进行加密。
问题:
一:长度问题
rsa根据私钥长度的不同对加密解密内容的限制也不一样,一般来说加密的内容长队=私钥长队/8,但是这里还有一个问题那就是对齐方式也占用一定的空间,一般的对齐方式都是占用11个字节,因此最后的明文长度=1024(假设使用1024的密钥长度)/8-11 =117,因此密文长度不能超过117,解密的长度为128.
那么如果明文的长度超过限定了怎么办呢?通常我们会采用分段加解密的方式来解决这个问题。
这里可以使用这个库https://github.com/Blankj/AndroidUtilCode
二:解密注意事项:
想要正确的解密出内容需要注意几点:
1:密钥是否正确,加密和解密的密钥必须是一对的。
2:如果采用分段加密,也一定要分段解密。
3:密钥的编码格式,密文的编码格式,对齐方式是什么。
如果密钥是进过base64编码的 那么在解密前也要使用同样的方式进行base64解码。
只有加密和解密完全对称才能正确的获取数据。

猜你喜欢

转载自blog.csdn.net/u014041033/article/details/80151457