Android使用RSA加密和解密

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android使用RSA加密和解密相关的知识,希望对你有一定的参考价值。

参考技术A 1.data是要加密的数据,如果是字符串则getBytes。publicKey是公钥,privateKey是私钥。自定义密钥对测试

2.从文件中读取公钥

当加密的数据过长时,会出现javax.crypto.IllegalBlockSizeException: Data must not be longer than 117 bytes的异常。rsa算法规定一次加密的数据不能超过生成密钥对时的keyLength/8-11,keyLength一般是1024个字节,则加密的数据不能超过117个字节

测试分段加密和解密

生成公钥和私钥后,用base64编码

一、android加密的数据服务器上无法解密?
android的rsa加密方式是RSA/ECB/NoPadding,而标准jdk是RSA/ECB/PKCS1Padding,所以加密时要设置标准jdk的加密方式

二、base64编码。因为不同的设备对字符的处理方式不同,字符有可能处理出错,不利于传输。所以先把数据做base64编码,变成可见字符,减少出错
官方提供的base64类,Base64.encode编码,Base64.decode解码。用这个会有换行符,需要自定义

三、rsa是非对称加密算法。依赖于大数计算,加密速度比des慢,通常只用于加密少量数据或密钥

四、公钥加密比私钥加密块,公钥解密比私钥解密慢。加密后的数据大概是加密前的1.5倍

以上是关于Android使用RSA加密和解密的主要内容,如果未能解决你的问题,请参考以下文章

android rsa加解密私钥和公钥怎么用

在 Android 中使用 RSA 算法解密数据

iOS RSA加密生成公钥私钥

使用polarssl进行RSA加密解密

RSA 加密解密

python的加密方式: rsa加密和解密