RSA 算法根据公钥(私钥)文件路径获取私钥(公钥)值
来源:互联网 发布:联排牙的利与弊 知乎 编辑:程序博客网 时间:2024/05/20 06:22
最近做某某银行对接的时候需要用到 RSA 算法加签验签, 这里把用到的工具方法整理下
根据私钥文件路径读取私钥:
public static String getSignPrivateKey4Client(String keyPath){
StringBuffer privateBuffer=new StringBuffer();
try {
//InputStream inputStream = Thread.currentThread().getContextClassLoader()
// .getResourceAsStream(signPrivatePath);
FileInputStream fi=new FileInputStream(keyPath);
InputStreamReader inputReader = new InputStreamReader(fi);
BufferedReader bufferReader = new BufferedReader(inputReader);
// 读取一行
String line = "";
while ((line=bufferReader.readLine())!=null) {
privateBuffer.append(line);
}
} catch (Exception e) {
e.printStackTrace();
}
return privateBuffer.toString();
}
根据公钥文件路径读取公钥:
public static String getVerifyKey4Client(String keyPath){
String key="";
try {
CertificateFactory cf = CertificateFactory.getInstance("X.509");
//InputStream in = Thread.currentThread().getContextClassLoader()
// .getResourceAsStream(signPublicPath);
FileInputStream fi=new FileInputStream(keyPath);
//生成一个证书对象并使用从输入流 inStream 中读取的数据对它进行初始化。
Certificate c = cf.generateCertificate(fi);
PublicKey publicKey = c.getPublicKey();
key=new BASE64Encoder().encodeBuffer(publicKey.getEncoded());
} catch (Exception e) {
e.printStackTrace();
}
return key;
}
json 数据转map
public static Map<String, Object> parseJSON2Map(String jsonStr){
Map<String, Object> map = new HashMap<String, Object>();
//最外层解析
JSONObject json = JSONObject.fromObject(jsonStr);
for(Object k : json.keySet()){
Object v = json.get(k);
//如果内层还是数组的话,继续解析
if(v instanceof JSONArray){
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
Iterator<JSONObject> it = ((JSONArray)v).iterator();
while(it.hasNext()){
JSONObject json2 = it.next();
list.add(parseJSON2Map(json2.toString()));
}
map.put(k.toString(), list);
} else {
map.put(k.toString(), v);
}
}
return map;
}
未完.................
- RSA 算法根据公钥(私钥)文件路径获取私钥(公钥)值
- RSA公钥算法是怎么回事(一)
- RSA公钥算法是怎么回事(二)
- RSA私钥文件(PEM)解析
- RSA公钥文件(PEM)解析
- RSA公钥文件(PEM)解析
- RSA公钥算法
- RSA根据modulus,exponent生成公钥
- RSA公钥加密+(Euclid)欧几里德扩展算法
- RSA公钥算法详解
- RSA公钥密码算法
- 根据文件名称获取资源文件路径 pathForResource
- 根据窗口标题获取文件路径
- 根据文件路径获取剩余磁盘空间
- android根据Uri获取文件路径
- OC中根据文件路径获取文件大小
- 根据Url获取手机文件真实路径
- C++根据文件路径获取文件名
- 网络流24题之T7 试题库问题
- 移植quectel的GPS模块
- 数据库索引,有什么用
- C++ using namespace std 详解
- "通常每个套接字地址(协议/网络地址/端口)只允许使用一次"
- RSA 算法根据公钥(私钥)文件路径获取私钥(公钥)值
- Oracle Enterprise Manager打不开的解决方法
- JAVA ------SSH 面试题
- jQuery.extend() 函数详解
- Ubuntu设置交换分区
- 局域网git 克隆
- IOS Intro
- ABAP DATA 和 JSON之间的转换
- Unity3D优化技巧系列四