博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java记录
阅读量:5083 次
发布时间:2019-06-13

本文共 2580 字,大约阅读时间需要 8 分钟。

1、由于公司需要,必须要在Java上运行些东西,以前看过Java但都差不多忘完了,所以安装一下Java记录一下,Java安装在C://Java文件夹里面的。配置的环境变量如下:

首先
然后如下图所示进行配置即可
1047534-20170413095445408-1958776624.png
1047534-20170413095454470-715916590.png
成功后如下所示
1047534-20170413095519283-1143220898.png

2、将Java生成为Jar包在转为rsa.exe: (需要注意rsa.exe的jdk版本,服务器上配置的时候,一定要与生成的jdk版本保持一致)

Java使用私钥文件对数据进行rsa解密
Java程序

//将私钥文件->私钥字符串public static RSAPrivateKey getPrivateKey(String keyPath, String passwd) throws Exception {    try {            KeyStore ks = KeyStore.getInstance("PKCS12");            FileInputStream fis = new FileInputStream(keyPath);                        char[] nPassword = null;            if ((passwd == null) || passwd.trim().equals("")) {                nPassword = null;            } else {                nPassword = passwd.toCharArray();            }            ks.load(fis, nPassword);            fis.close();                        Enumeration enumq = ks.aliases();            String keyAlias = null;            if (enumq.hasMoreElements())             {                keyAlias = (String) enumq.nextElement();            }                PrivateKey prikey = (PrivateKey) ks.getKey(keyAlias, nPassword);                return (RSAPrivateKey) prikey;    } catch (Exception e) {        e.printStackTrace();        return null;    }}//私钥解密public static String decrypt(String sign_msg, String pfx_path, String pfx_pass) {    try {            RSAPrivateKey pbk = getPrivateKey(pfx_path, pfx_pass);                        Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1PADDING");            cipher.init(Cipher.DECRYPT_MODE, pbk);                byte[] btSrc = cipher.doFinal(Base64.decode(sign_msg));                        return new String(btSrc,ENCODING);    } catch (Exception e) {        e.printStackTrace();        return "";    }}//执行Main函数public static void main(String[] args) throws Exception {    //解密密钥    String key_3des_enc = args[0];    String pfx_path = args[1];    String pfx_pass = args[2];        String key_3des = RSA.decrypt(key_3des_enc,pfx_path,pfx_pass);    System.out.println(key_3des);}

C#程序

/// /// 使用私钥解密出一个Java生成的随机密码,此处一般是3DES的加密密码,Base64字符串/// /// 要解密的字符串/// 证书路径/// 证书密码/// 
public static string DecryptRandKeyByPrivateKey(string encryptString,string pfxPath,string password){ System.Diagnostics.Process p = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo ps = new System.Diagnostics.ProcessStartInfo("rsa.exe"); ps.Arguments = string.Format("{0} {1} {2}", encryptString, pfxPath, password); ps.RedirectStandardOutput = true; ps.UseShellExecute = false; p.StartInfo = ps; p.Start(); return p.StandardOutput.ReadToEnd();}

转载于:https://www.cnblogs.com/xuxuzhaozhao/p/6702522.html

你可能感兴趣的文章
http://lorempixel.com/ 可以快速产生假图
查看>>
编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成...
查看>>
oracle连接的三个配置文件(转)
查看>>
Python内置函数(29)——help
查看>>
Android TextView加上阴影效果
查看>>
《梦断代码》读书笔记(三)
查看>>
AngularJS学习篇(一)
查看>>
spring security 11种过滤器介绍
查看>>
代码实现导航栏分割线
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
Mysql性能调优
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>
getElement的几中属性介绍
查看>>
HTML列表,表格与媒体元素
查看>>
设计器 和后台代码的转换 快捷键
查看>>
STL容器之vector
查看>>
数据中心虚拟化技术
查看>>
复习文件操作
查看>>