在做项目中为了安全考虑会对数据进行加密,这里使用了RSA进行加密。
总结如下:
特点:公钥加密私钥解密;私钥签名公钥认证;公钥就是通过私钥生成的。
优点:非对称加密,安全性高;
缺点:加解密效率低,耗费性能因此不适合对大量数据进行加密。
问题:
一:长度问题
rsa根据私钥长度的不同对加密解密内容的限制也不一样,一般来说加密的内容长队=私钥长队/8,但是这里还有一个问题那就是对齐方式也占用一定的空间,一般的对齐方式都是占用11个字节,因此最后的明文长度=1024(假设使用1024的密钥长度)/8-11 =117,因此密文长度不能超过117,解密的长度为128.
那么如果明文的长度超过限定了怎么办呢?通常我们会采用分段加解密的方式来解决这个问题。
这里可以使用这个库https://github.com/Blankj/AndroidUtilCode
二:解密注意事项:
想要正确的解密出内容需要注意几点:
1:密钥是否正确,加密和解密的密钥必须是一对的。
2:如果采用分段加密,也一定要分段解密。
3:密钥的编码格式,密文的编码格式,对齐方式是什么。
如果密钥是进过base64编码的 那么在解密前也要使用同样的方式进行base64解码。
只有加密和解密完全对称才能正确的获取数据。
RSA加解密问题
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...