微信支付开始涉及的一些内容
来源:互联网 发布:棍刀淘宝 编辑:程序博客网 时间:2024/06/06 10:40
1、获取腾讯rsa证书格式是pkcs#! ,需要转换,参考如下
- PKCS#1 转 PKCS#8:
openssl rsa -RSAPublicKey_in -in <filename> -pubout
- PKCS#8 转 PKCS#1:
openssl rsa -pubin -in <filename> -RSAPublicKey_out
Java RSA以 " RSA/ECB/OAEPWITHSHA-1ANDMGF1PADDING"方式加密
/** * 微信支付取到的rsa证书格式是: 公钥格式PKCS#1 ,需要把证书转换成,PKCS#8 * 命令 : openssl rsa -RSAPublicKey_in -in <filename> -pubout * pem 公钥 加载 * @return * @throws Exception */ public static PublicKey GeneratePublicKeyFromPem(String cerFilePath) throws Exception { try { BASE64Decoder base64decoder = new BASE64Decoder(); BufferedReader br = new BufferedReader(new FileReader(cerFilePath)); String s = br.readLine(); StringBuffer publickey = new StringBuffer(); s = br.readLine(); while (s.charAt(0) != '-') { publickey.append(s + "\r"); s = br.readLine(); } System.out.println("publickey="+publickey); byte[] keybyte = base64decoder.decodeBuffer(publickey.toString()); KeyFactory kf = KeyFactory.getInstance("RSA"); X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keybyte); PublicKey publicKey = kf.generatePublic(keySpec); return publicKey; } catch (Exception e) { Logger.getLogger("").info("读pem文件生成公钥出错:" +e.toString()); throw e; } } /** * 微信支付使用的RSA 加密方式 * @param str * @return */ public static String RsaEn(String str){ String result=null; try{ PublicKey publicKey=GeneratePublicKeyFromPem(str); Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWITHSHA-1ANDMGF1PADDING"); cipher = Cipher.getInstance(keyAlgorithm); cipher.init(Cipher.ENCRYPT_MODE, publicKey); //公钥加密 byte[] encrypt = cipher.doFinal(str.getBytes()); result=new BASE64Encoder().encode(encrypt); }catch(Exception e){ Logger.getLogger("").info("RSA加密出现异常:"+e.toString()); e.printStackTrace(); } return result; }
阅读全文
0 0
- 微信支付开始涉及的一些内容
- 微信支付的一些坑
- 微信支付开发的一些坑
- 微信支付上的一些坑
- 微信支付的一些坑
- 【微信支付】开发遇到的一些问题一些弯路
- 微信支付一些细节
- 支付宝支付和微信支付接入前要看的一些事
- 关于微信分享支付的一些问题
- 微信支付中 素要用到的一些参数
- 微信支付具体步骤和一些常见的坑
- 微信支付web开发遇到的一些坑
- 微信jsapi支付遇到的一些坑
- 微信支付签名算法的一些坑……
- 微信公众号支付的一些心得
- 微信支付服务端的一些坑及最终解决
- android studio 导入微信支付demo的一些问题
- APP微信支付后台内容小结
- Velocity之动态获取Web项目根目录
- PAT1020 中序+后续求层次遍历
- MTK Android Camera 运行流程-app到底层
- vue文件结构
- 虚幻4如何通过菜单设置分辨率
- 微信支付开始涉及的一些内容
- vue路由以及组件件的传值
- 闭包
- Java基础-面向对象
- telnet模拟http请求 [转]
- shell学习三十--综合应用
- python对nosql的操作五
- javascript语法之标签(label)
- css_note