package com.eetrust.security.rsa;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import javax.crypto.Cipher;
import org.apache.commons.codec.binary.Base64;
public class DemoRSA {
private static String src = "eetrust";
public static void main(String[] args) {
jdkRSA();
}
public static void jdkRSA() {
try {
//1.初始化密钥
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(512);
KeyPair keyPair = keyPairGenerator.generateKeyPair();
RSAPublicKey rsaPublicKey = (RSAPublicKey)keyPair.getPublic();
RSAPrivateKey rsaPrivateKey = (RSAPrivateKey)keyPair.getPrivate();
System.out.println("Public Key : " + Base64.encodeBase64String(rsaPublicKey.getEncoded()));
System.out.println("Private Key : " + Base64.encodeBase64String(rsaPrivateKey.getEncoded()));
//2.私钥加密、公钥解密——加密
PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(rsaPrivateKey.getEncoded());
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec);
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, privateKey);
byte[] result = cipher.doFinal(src.getBytes());
System.out.println("私钥加密、公钥解密——加密 : " + Base64.encodeBase64String(result));
//3.私钥加密、公钥解密——解密
X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(rsaPublicKey.getEncoded());
keyFactory = KeyFactory.getInstance("RSA");
PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec);
cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, publicKey);
result = cipher.doFinal(result);
System.out.println("私钥加密、公钥解密——解密:" + new String(result));
//4.公钥加密、私钥解密——加密
x509EncodedKeySpec = new X509EncodedKeySpec(rsaPublicKey.getEncoded());
keyFactory = KeyFactory.getInstance("RSA");
publicKey = keyFactory.generatePublic(x509EncodedKeySpec);
cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
result = cipher.doFinal(src.getBytes());
System.out.println("公钥加密、私钥解密——加密 : " + Base64.encodeBase64String(result));
//5.公钥加密、私钥解密——解密
pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(rsaPrivateKey.getEncoded());
keyFactory = KeyFactory.getInstance("RSA");
privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec);
cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, privateKey);
result = cipher.doFinal(result);
System.out.println("公钥加密、私钥解密——解密:" + new String(result));
} catch (Exception e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Security.rar (41个子文件)
Security
.project 384B
src
test
main
java
com
eetrust
security
rsa
DemoRSA.java 3KB
des
Demo3DES.java 2KB
DemoDES.java 2KB
md
DemoMD.java 2KB
rsa2
DemoRSA.java 2KB
base64
DemoBase64.java 1KB
dh
DemoDH.java 3KB
sha
DemoSHA.java 2KB
aes
DemoAES.java 1KB
dsa
DemoDSA.java 2KB
idea
DemoIDEA.java 1KB
crc
DemoCRC.java 327B
pbe
DemoPBE.java 1KB
hmac
DemoHmac.java 2KB
ecdsa
DemoECDSA.java 2KB
classes
com
eetrust
security
rsa
DemoRSA.class 4KB
des
DemoDES.class 3KB
Demo3DES.class 3KB
md
DemoMD.class 3KB
rsa2
DemoRSA.class 3KB
base64
DemoBase64.class 2KB
dh
DemoDH.class 4KB
sha
DemoSHA.class 3KB
aes
DemoAES.class 2KB
dsa
DemoDSA.class 3KB
idea
DemoIDEA.class 2KB
crc
DemoCRC.class 1KB
pbe
DemoPBE.class 2KB
hmac
DemoHmac.class 3KB
ecdsa
DemoECDSA.class 3KB
lib
bcprov-ext-jdk15on-149.jar 2.43MB
commons-codec-1.10.jar 278KB
sources
commons-codec-1.10-javadoc.jar 424KB
commons-codec-1.10-sources.jar 294KB
bcprov-jdk15on-151-sources.jar 3.13MB
bcprov-jdk15on-149.jar 2.36MB
.settings
org.eclipse.jdt.core.prefs 670B
de.guhsoft.jinto.core.prefs 128B
org.eclipse.core.resources.prefs 57B
.classpath 673B
共 41 条
- 1
资源评论
Caoy36624826
- 粉丝: 5
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功