背景
使用rsa跟服务器传递对称密钥的时候,客户端的密文服务器解密不了,一直解密错误。经过搜索实践,终于解决。
原因
- jdk的rsa加密方式是 RSA/ECB/PKCS1Padding 或 RSA/None/PKCS1Padding
- android平台默认的加密方式是 RSA/ECB/NoPadding或RSA/None/NoPadding
代码如下:
Cipher cp = Cipher.getInstance("RSA/ECB/PKCS1Padding");
base64的问题
android Base64加密使用Default模式,会导致特殊字符例如 \n \r等等。这时候需要使用URL_SAFE模式或NO_WRAP模式。