RSA加密/解密例子
2017-03-25 17:41
363 查看
package encryption; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import java.security.*; import java.util.Arrays; /** * User: 刘永健 * Date: 12-10-4 * Time: 下午9:15 * To change this template use File | Settings | File Templates. */ public class RSADemo{ public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException { //B给A发送的信息 byte[] plain = "password".getBytes(); System.out.println("原文:"+ Arrays.toString(plain)); //A生成一个密钥对 KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA"); generator.initialize(3072); // 指定密钥长度 KeyPair keyPair = generator.generateKeyPair(); //A把公钥公开 PublicKey publicKey = keyPair.getPublic(); //A自己保存好私钥 PrivateKey privateKey = keyPair.getPrivate(); System.out.println("公钥:"+publicKey); System.out.println("私钥:"+privateKey); Cipher cipher = Cipher.getInstance("RSA"); //B用A的公钥把信息加密后发给A cipher.init(Cipher.ENCRYPT_MODE, publicKey); cipher.update(plain); byte[] result1 = cipher.doFinal(); System.out.println("加密结果:"+Arrays.toString(result1)); //A得到B发过来的信息后用自己的私钥进行解密 cipher.init(Cipher.DECRYPT_MODE, privateKey); cipher.update(result1); byte[] result2 = cipher.doFinal(); System.out.println("解密结果:"+Arrays.toString(result2)); System.out.println("原文比较:"+Arrays.equals(result2, plain)); } }
另,一个例子:
http://sunxboy.iteye.com/blog/209156
相关文章推荐
- RSA非对称加密解密例子
- openssl rsa 加密,解密,签名,验签简单例子
- openssl pem密钥文件rsa加密解密例子
- RSA 加解密的例子,JS加密--php解密
- iOS10.0 后RSA加密解密失败
- RSA简单加密解密
- C#中RSA加密解密和签名与验证的实现
- php rsa 加密、解密、签名、验签
- RSA加密与解密
- RSA加解密使用总结,.net私钥加密公钥解密,WinCE平台RSA加解密
- Python下实现的RSA加密/解密及签名/验证功能示例
- RSA前端加密解密
- python下RSA 加密/解密,签名/验证
- java RSA加密解密--转载
- RSA--低加密指数广播攻击例子
- iOS中使用RSA对数据进行加密解密
- [置顶] Rsa 加密解密 java
- 安装openssl及实现RSA加密解密的详细步骤
- 同时兼容JS和C#的RSA加密解密算法详解(对web提交的数据加密传输)
- php中rsa加密解密验证