用android写一个 RSA 公钥加解密密算法
时间: 2023-06-05 18:07:14 浏览: 380
Android使用RSA加密和解密的示例代码
RSA加解密算法是一种非对称加密算法,其中公钥用于加密,私钥用于解密。以下是一个Android上实现RSA公钥加解密的示例代码:
首先,在你的app中添加以下依赖关系:
implementation 'org.spongycastle:sc-light-jdk15on:1.63'
implementation 'org.spongycastle:scprov-jdk15on:1.63'
这里使用了Spongy Castle,它是一个Java Cryptography Extension(JCE)的JSSE实现,它支持许多通用的加密算法。
接下来,可以按以下方法使用RSA算法:
// 生成密钥对
KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA", "SC");
generator.initialize(2048);
KeyPair keyPair = generator.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
// 使用公钥加密
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding", "BC");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encrypted = cipher.doFinal(plainText.getBytes());
// 使用私钥解密
Cipher cipher2 = Cipher.getInstance("RSA/ECB/PKCS1Padding", "BC");
cipher2.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decrypted = cipher2.doFinal(encrypted);
注意,在使用RSA算法时,需要注意密钥长度的选择。通常建议使用2048位的密钥,这样可以提供足够的安全性。
以上是一个简单的Android上实现RSA公钥加解密的示例。
阅读全文