- 浏览: 771976 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
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 2939任何诡异的现象必然能找到问题原因,程序是不会骗人的 ... -
memcached客户端源码分析
2011-09-08 17:28 19881memcached的java客户端有好 ... -
说说单例模式
2011-05-23 11:12 3285单例模式?多么简单!也许吧,可是要通过简单的现象, ... -
jstack和线程dump分析
2011-05-12 13:48 179963一:jstack jstack命令的语法格式: js ... -
说说new Integer和Integer.valueOf
2010-11-11 15:04 6537看看这两个语句 Integer a=new Integ ... -
线程安全总结(二)
2010-11-11 12:36 5555关于线程安全总结(-)请看 http://www.iteye ... -
java线程安全总结
2010-11-09 20:48 15554最近想将java基 ... -
hadoop架构
2010-09-07 19:41 2633该文章我转自IBM开发者社区 ... -
HashMap深入分析
2010-09-03 19:36 5797java.util.HashMap是很常见的 ... -
CountDownLatch
2010-09-02 20:03 2918java的并发包真 ... -
ThreadPoolExecutor相关类的分析
2010-09-02 19:27 4556一:ThreadPoolExecutor ... -
随便说说
2010-09-01 19:29 2057这两天给系统 ... -
一波三折的rmi调用
2010-08-18 18:02 9810很久以前写了基于rmi的分布式java程序,现 ... -
java内存查看与分析
2010-08-07 17:03 22389业界有很多强 ... -
java动态代理之cglib
2010-06-22 17:27 2751cglib是一个 ... -
java动态代理随笔二
2010-06-22 16:29 1835jdk的动态代 ... -
java动态代理随笔一
2010-06-22 14:49 2036先说一下java class的加载机制和与cla ... -
关于hashcode和equals
2010-04-19 14:58 3338前几天有个同事问我,String a=" ... -
建设银行对接(五)
2010-02-09 17:34 2491public static void testVerify ... -
建设银行对接(三)
2010-02-09 17:24 3404前面两章请见我的博客 对建行返回的数据进行数字签名 ...
相关推荐
善付通是在善融商务建立的,为供应链中具有一定主导地位的客户与其上下游间交易提供信息协同、结算对账及经营分析的服务专区。 善付通解决企业传统订单管理、对外协同、收付款等环节分离所造成的对账工作量大、出错...
1,系统接口设计 2,接口设计原则 3,接口定义与分类 4,接口设计模式 5,接口实现方式 6,接口详细设计
建行银行支付demo,集成了建行银行支付功能,内容很详细 建行银行支付demo,集成了建行银行支付功能,内容很详细
(1) 每个操作员在发送交易之前,须先调用 RequestProcess 类的 (2) 调用参数说明: (1) RequestProcess 类的 sendRe
互联网+智慧银行金融平台建设综合解决方案
本工具类可用于对接支付时生成加密数据字段,方便同学们尽快完成任务。博主主要是用这个工具类生成的mac值用于对接建行支付
今天要分享的内容,会以商家的视角去分析对接渠道过程中需要关注的问题。 (此图片来源于网络,如...银行:招行、建行、农行等 支付机构:微信、支付宝、京东等 每个渠道有自己的收款产品,对应在不同的支付终端上使用。
华兴银行总行互联网银行事业部暑期调研报告 贺佳贝 一、 华兴银行简介 二、 互联网银行事业部简介 三、 P2P 网贷的银行存管模式调研报告 四、 会议纪要调研报告 五、 零售信贷业务调查报告 六、 金融同业机构(银行...
1、 登陆页面填入信息 选择银行。 2、 网上找的新的ID,和密码加入到配置文件中使用 3、 点击提交后连接到易宝的支付... 4、 通过建行支付的连接(显示建行已经扣了0.01元) ...5通过上面网址信息发现支付成功。... 、
门户网站建设及运营、养老政务管理系统(服务监管&线上业务办理)、居家&社区养老管理系统、养老机构管理系统、呼叫管理系统、家庭养老...建设及运营、尊老金管理系统、适老化改造系统、时间银行系统、数据接口对接管理...
SM2Utils.java中main进行国密SM2私钥公钥生成、加解密。SM3Digest.java中main方法里进行sm3摘要生成。
卡组织负责制定和推行银行卡跨行交易的业务规范和技术标 准,建设及运营银行卡支付网络,完成信息交换和资金清算。卡组织类 似于互联网时代的平台型公司,上游对接银行,扩大发卡规模;下游对 接商户,增加受理范围...
邮政联通数字电信手拉手手机支付第三方BOSS光大建行中行19E殴飞对接,此款软件和服务器支撑系统。缴费客户端配合使用。全套软件包括【服务器】、【管理器】、【对接程序】、【客户端】组成,缺一不可。服务器包括未...
通过本系统的建设,全校36栋学生公寓已全部接入一卡通专网,其中渭水校区15栋学生公寓的新中新控电系统已与学生用电自助购电系统对接,校本部
家校通平台部署在教育局,在各个...和银行系统对接:学生卡中余额不足,短信告知家长,家长以短信形式同意转账向校园卡钱包转账;家长通过网银系统对学生校园卡充值转账;和家长银行卡绑定,进行批量或者自助圈存转账。
本工具类用java实现了JavaScript escape/unescape 编码。对接建行支付以及需要向后端传输中文数据时可以使用得到
2.2.1.10 与门禁系统的对接 12 2.2.1.11 安全认证 12 2.2.2 现金、假币、凭证业务模块 12 2.2.2.1 基础数据维护 13 2.2.2.2 库房管理 14 2.2.2.3 网点与支行、支行与总行、网点向总行之间物资调拨管理 16 2.2.2.4 ...
毕业设计总结与展望致谢 6.1...比如,电子寄存柜系统,银行自动转账业务系统等等。目前的问题 是成本因素制约 RFID 发展。编制高校信息标准体系,建立多种校园一卡通的投资运营模式是解决问题的关键 。我们相信,在信
建设由城市延伸到农村的统一社会救助、社会福利、社会保障大数据平台,加强与相关部门的数据对接和信息共享,支撑大数据在劳动用工和社保基金监管、医疗保险对医疗服务行为监控、劳动保障监察、内控稽核以及人力资源...
9、银行短信全自动加款,代理商在银行存款后系统自动给代理商加款。 数据安全 1、客户端与服务器的数据传输使用电脑硬件加密传输,有效防止网络修改数据。 2、系统登录由代理商帐号、密码、短信认证、电脑硬件码...