java私钥解密代码,Net怎么重写
java私钥解密代码,.Net如何重写?
[ code=java]byte[] msg = "中国人民解放军".getBytes("UTF-8");
// 用证书的公钥加密
CertificateFactory cff = CertificateFactory.getInstance("X.509");
FileInputStream fis1 = new FileInputStream(
"E://TestKey2.cer"); // 证书文件
java.security.cert.Certificate cf = cff.generateCertificate(fis1);
PublicKey pk1 = cf.getPublicKey(); // 得到证书文件携带的公钥
Cipher c1 = Cipher.getInstance("RSA/ECB/PKCS1Padding"); // 定义算法:RSA
c1.init(Cipher.ENCRYPT_MODE, pk1);
byte[] msg1 = c1.doFinal(msg); // 加密后的数据
// 用证书的私钥解密 - 该私钥存在生成该证书的密钥库中
FileInputStream fis2 = new FileInputStream(
"E://TestStore");
KeyStore ks = KeyStore.getInstance("JKS"); // 加载证书库
char[] kspwd = "000000".toCharArray(); // 证书库密码
char[] keypwd = "000000".toCharArray(); // 证书密码
ks.load(fis2, kspwd); // 加载证书
PrivateKey pk2 = (PrivateKey) ks.getKey("TestKey2", keypwd); // 获取证书私钥
fis2.close();
Cipher c2 = Cipher.getInstance("RSA/ECB/PKCS1Padding");
c2.init(Cipher.DECRYPT_MODE, pk2);
byte[] msg2 = c2.doFinal(msg1); // 解密后的数据
System.out.println(new String(msg2, "UTF8")); // 将解密数据转为字符串[/code]
这是java的一段私钥解密的代码,
我没有做过私钥这方面的东西,也没接触过。所以不太清楚在Net里面有没有可能将这个方法重写,同时也没有什么思路去写解密的方法。
麻烦有哪位大牛接触这方面的东西指点一下,感激不尽。
------解决思路----------------------
只要解密看这个
http://msdn.microsoft.com/zh-cn/library/system.security.cryptography.rsacryptoserviceprovider.aspx
------解决思路----------------------
解密之前难道不要把密钥转成 .NET 的吗, 不然怎么用 .NET 解密.
[ code=java]byte[] msg = "中国人民解放军".getBytes("UTF-8");
// 用证书的公钥加密
CertificateFactory cff = CertificateFactory.getInstance("X.509");
FileInputStream fis1 = new FileInputStream(
"E://TestKey2.cer"); // 证书文件
java.security.cert.Certificate cf = cff.generateCertificate(fis1);
PublicKey pk1 = cf.getPublicKey(); // 得到证书文件携带的公钥
Cipher c1 = Cipher.getInstance("RSA/ECB/PKCS1Padding"); // 定义算法:RSA
c1.init(Cipher.ENCRYPT_MODE, pk1);
byte[] msg1 = c1.doFinal(msg); // 加密后的数据
// 用证书的私钥解密 - 该私钥存在生成该证书的密钥库中
FileInputStream fis2 = new FileInputStream(
"E://TestStore");
KeyStore ks = KeyStore.getInstance("JKS"); // 加载证书库
char[] kspwd = "000000".toCharArray(); // 证书库密码
char[] keypwd = "000000".toCharArray(); // 证书密码
ks.load(fis2, kspwd); // 加载证书
PrivateKey pk2 = (PrivateKey) ks.getKey("TestKey2", keypwd); // 获取证书私钥
fis2.close();
Cipher c2 = Cipher.getInstance("RSA/ECB/PKCS1Padding");
c2.init(Cipher.DECRYPT_MODE, pk2);
byte[] msg2 = c2.doFinal(msg1); // 解密后的数据
System.out.println(new String(msg2, "UTF8")); // 将解密数据转为字符串[/code]
这是java的一段私钥解密的代码,
我没有做过私钥这方面的东西,也没接触过。所以不太清楚在Net里面有没有可能将这个方法重写,同时也没有什么思路去写解密的方法。
麻烦有哪位大牛接触这方面的东西指点一下,感激不尽。
------解决思路----------------------
只要解密看这个
http://msdn.microsoft.com/zh-cn/library/system.security.cryptography.rsacryptoserviceprovider.aspx
------解决思路----------------------
解密之前难道不要把密钥转成 .NET 的吗, 不然怎么用 .NET 解密.