- 浏览: 776414 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
Fanatic357:
同问,请问这个 曲线 是用什么工具 监测得到的?
RocketMQ性能压测分析 -
sunshine_love:
8核 16G, 单master TPS 4w+,2m-2s- ...
RocketMQ性能压测分析 -
assertmyself:
很好,,获益良多!
jstack和线程dump分析 -
zhaoxiaoxiao:
非常赞,帮助理解了问题。今天也是遇到了这样的问题
hessian序列化bug -
wjg_java:
打不开 宕机了
博客停止更新
上接“建设银行对接(三)”,javaeye的文章字数限制也太少了点吧,一篇文章连一个类代码都贴不完,这类代码也不长啊。
/** * 用私钥加密 * @param data * @param key * @return * @throws Exception */ public static byte[] encryptByPrivateKey(byte[] data, byte[] key) throws Exception { // 对密钥解密 //byte[] keyBytes = decryptBASE64(key); // 取得私钥 PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(key); KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); Key privateKey = keyFactory.generatePrivate(pkcs8KeySpec); // 对数据加密 Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.ENCRYPT_MODE, privateKey); return cipher.doFinal(data); }
/**
* 取得私钥
*
* @param keyMap
* @return
* @throws Exception
*/
public static byte[] getPrivateKey(Map<String, Object> keyMap)
throws Exception {
Key key = (Key) keyMap.get(PRIVATE_KEY);
return key.getEncoded();
}
/**
* 取得公钥
*
* @param keyMap
* @return
* @throws Exception
*/
public static byte[] getPublicKey(Map<String, Object> keyMap)
throws Exception {
Key key = (Key) keyMap.get(PUBLIC_KEY);
return key.getEncoded();
}
/**
* 初始化密钥
*
* @return
* @throws Exception
*/
public static Map<String, Object> initKey() throws Exception {
KeyPairGenerator keyPairGen = KeyPairGenerator
.getInstance(KEY_ALGORITHM);
keyPairGen.initialize(1024);
KeyPair keyPair = keyPairGen.generateKeyPair();
// 公钥
RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();
// 私钥
RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
Map<String, Object> keyMap = new HashMap<String, Object>(2);
keyMap.put(PUBLIC_KEY, publicKey);
keyMap.put(PRIVATE_KEY, privateKey);
return keyMap;
}
}
下面是建设银行服务类
package cn.ipanel.payment.business.bank.ccb;
import cn.ipanel.payment.business.bank.BankException;
import cn.ipanel.payment.business.bank.ccb.encryption.ByteUtil;
import cn.ipanel.payment.business.bank.ccb.encryption.Encoder;
import cn.ipanel.payment.business.bank.ccb.encryption.RSAEncoder;
/**
* 建设银行服务
* @author wangxiaoxue
*
*/
public class CCBBankService{
/**
* 对建行返回的数据进行数字签名校验,校验算法如下:<br>
* 1:将签名字符串和公钥转换成二进制格式<br>
* 2:使用公钥进行签名的逆运算<br>
* 3:使用标准MD5算法运算原文<br>
* 4:比较1、2结果
* @param signature 数字签名字符串
* @param content 原文字符串
* @param publicKey 公钥字符串
*/
public static boolean verifySignature(String signature,String content,String publicKey) throws BankException {
boolean status=false;
try {
//对原文进行MD5加密
byte[] md5bytes = Encoder.encryptMD5(content.getBytes());
//对签名字符串进行逆运算,将16进制字符串按照约定算法转换为二进制数据
byte[] signbytes = ByteUtil.charToByte(signature);
//对公钥字符串进行逆运算,将16进制字符串按照约定算法转换为二进制数据
byte[] keybytes = ByteUtil.charToByte(publicKey);
//校验
status = RSAEncoder.verify(md5bytes, keybytes, signbytes);
} catch (Exception e) {
e.printStackTrace();
throw new BankException("校验数字签名过程出现错误");
}
return status;
}
/**
* 加密发送的内容
* @param senddata 发送的内容原文
* @return 加密后的内容
* @throws BankException
*/
public static String encryptSenddata(String senddata)throws BankException{
String result=null;
try {
result= ByteUtil.byteToChar(Encoder.encryptMD5(senddata.getBytes()));
} catch (Exception e) {
e.printStackTrace();
throw new BankException("加密过程出现错误");
}
return result;
}
发表评论
-
dubbo问题总结
2012-03-14 10:00 2983任何诡异的现象必然能找到问题原因,程序是不会骗人的 ... -
memcached客户端源码分析
2011-09-08 17:28 19950memcached的java客户端有好 ... -
说说单例模式
2011-05-23 11:12 3334单例模式?多么简单!也许吧,可是要通过简单的现象, ... -
jstack和线程dump分析
2011-05-12 13:48 180155一:jstack jstack命令的语法格式: js ... -
说说new Integer和Integer.valueOf
2010-11-11 15:04 6592看看这两个语句 Integer a=new Integ ... -
线程安全总结(二)
2010-11-11 12:36 5609关于线程安全总结(-)请看 http://www.iteye ... -
java线程安全总结
2010-11-09 20:48 15639最近想将java基 ... -
hadoop架构
2010-09-07 19:41 2684该文章我转自IBM开发者社区 ... -
HashMap深入分析
2010-09-03 19:36 5830java.util.HashMap是很常见的 ... -
CountDownLatch
2010-09-02 20:03 2964java的并发包真 ... -
ThreadPoolExecutor相关类的分析
2010-09-02 19:27 4597一:ThreadPoolExecutor ... -
随便说说
2010-09-01 19:29 2100这两天给系统 ... -
一波三折的rmi调用
2010-08-18 18:02 9854很久以前写了基于rmi的分布式java程序,现 ... -
java内存查看与分析
2010-08-07 17:03 22477业界有很多强 ... -
java动态代理之cglib
2010-06-22 17:27 2794cglib是一个 ... -
java动态代理随笔二
2010-06-22 16:29 1878jdk的动态代 ... -
java动态代理随笔一
2010-06-22 14:49 2076先说一下java class的加载机制和与cla ... -
关于hashcode和equals
2010-04-19 14:58 3389前几天有个同事问我,String a=" ... -
建设银行对接(五)
2010-02-09 17:34 2559public static void testVerify ... -
建设银行对接(三)
2010-02-09 17:24 3471前面两章请见我的博客 对建行返回的数据进行数字签名 ...
相关推荐
-- 中国建设银行商户通知验签配置文件 --> <!-- 通讯端口1024~65535之间未被使用的端口 --> <value>55533 <!-- 通讯端口1024~65535之间未被使用的端口 --> <value>5 <!-- 可按照不同的柜台号配置不同...
《软件系统平台对接接口方案详解》 在信息技术领域,软件系统平台对接接口方案的设计与实施是构建高效、稳定、可扩展的信息系统的关键环节。本文将深入探讨系统接口设计的各个方面,包括接口设计原则、接口定义与...
【建设银行善付通支付结算接入文档】是指导企业如何接入和使用善付通服务的详细技术指南。善付通是建设银行在善融商务平台上为供应链企业提供的一种高效、便捷的支付结算解决方案,旨在帮助企业优化订单管理、协同...
建设银行银企直联主要应用于企业的资金管理、资金归集、资金调拨等方面。通过银企直联系统,企业可以实现对其银行账户的全面管理,包括余额查询、明细查询、转账、代发工资等。同时,企业还可以利用银企直联系统进行...
【网银外联平台用户手册】是针对使用Java开发的企业网银系统与银行外联平台进行接口对接的指导文档。该手册主要介绍了如何利用Jar包版本的外联平台实现与银行系统的交互,无需安装额外的客户端服务。手册的版本为V...
7. **邮乐/ECShop2.7.2/分销王/优购/阿里巴巴/库巴/聚美优品/聚美海淘/趣天麦网/走秀/建行善融/ShopEx_general/V+/苏宁易购/口袋通/唯品会/美丽说/工商银行/蘑菇街/贝贝网/楚楚街/折800/口袋购物(微店)/微盟/微盟萌...
为缩小与先进地区的差距,需要进一步明确战略定位,加强政策引导,提升金融服务能力,强化企业上市培育,优化市场环境,完善风险防控机制,以实现更高效、更全面地对接多层次资本市场,助力工业强县建设。...
建行银行支付demo,集成了建行银行支付功能,内容很详细 建行银行支付demo,集成了建行银行支付功能,内容很详细
在IT行业中,建行龙支付下单模拟器脚本是一种用于测试和自动化支付流程的工具,主要服务于商户在对接中国建设银行的龙支付接口时进行功能验证和性能测试。这个脚本能够模拟真实的商户操作,无需实际交易即可完成支付...
该java源代码将建行互联网银企被扫支付接口java版加密及验签Demo 封装成jar包,方便nodejs调用。 1.将建行Java版加密Demo打包成jar包:CCBParam.jar。并将jar包放到服务器的相应文件夹下。 2.根据订单号、金额、付款...
【商业银行对接长江经济带战略】 长江经济带是中国经济发展的重要战略之一,旨在重塑区域发展格局,推动东中西三大区域的联动和协调发展。2014年,长江经济带被提升为国家战略,与“一带一路”和“京津冀协同发展”...
"建设银行高端客户答谢会活动执行方案" 以下是从给定的文件中生成的相关知识点: 1. 活动策划:本文档提供了一个完整的活动执行方案,包括活动名称、目的、时间、地点、内容、流程等详细信息。这项活动的目的是...
【新版建行B2B演示软件】是一款专为中国建设银行(建行)的企业客户设计的交互式演示系统,主要用于展示和体验IBS5.0_B2BDemo平台的功能与服务。这款软件旨在帮助企业在实际应用前,理解并熟悉B2B(Business-to-...
互联网+智慧银行金融平台建设综合解决方案
【建设银行高端客户答谢会活动执行方案】是银行业务中一种重要的客户关系管理策略,旨在维护和增强与高端客户的紧密联系,提升品牌形象,优化客户服务体系,并推动业绩增长。活动以"睿智人生·幸福圆舞曲"为主题,...
【中国建设银行数字化经营优秀案例】反映了金融巨头如何利用互联网技术进行企业内部的数智化转型,提升培训效率和降低成本。在这个案例中,建行采用了保利威提供的“直播中台”和“直播云”解决方案,构建了全新的...
福建省建设银行“短信通”项目应用方案主要针对的是银行行业的移动信息化需求,旨在提升银行业务效率,优化客户服务体验,以及增强内部沟通与管理。以下是该项目的详细解析: 1. 银行移动信息化需求分析: - 银行...
本工具类可用于对接支付时生成加密数据字段,方便同学们尽快完成任务。博主主要是用这个工具类生成的mac值用于对接建行支付
总的来说,建设银行对SM集团的金融服务方案设计旨在构建一个以核心企业为中心,融合信息、物流、资金的高效金融生态系统,通过深度合作,实现银企双赢,促进整个供应链的健康发展。这不仅是银行业务创新的体现,也是...