银行接口的私钥和公钥详解

中国银行、建设银行、农业银行、工商银行、招商银行等支付接口的私钥和公钥详解

密钥:
我理解是公钥+私钥的统称。

密钥对:
公钥(证书)和私钥成对存在。
通信双方各持有自己的私钥和对方的公钥。自己的私钥需密切保护,而公钥是公开给对方的。在windows下,单独存在的公钥一般是后缀为.cer的文件
A用自己的私钥对数据加密,发给B,B用A提供的公钥解密。同理B用自己的私钥对数据加密,发送给A后,A用B的公钥解开。
公钥的两个用途:
1。验证对方身份:防止其他人假冒对方发送数据给你。
2。解密。
私钥的两个用途:
1。表明自己身份:除非第三方有你私钥,否则无法假冒你发送数据数据给对方。
2。加密。

jks(java key store):
java用的存储密钥的容器。可以同时容纳n个公钥或私钥,后缀一般是.jks或者.keystore或.truststore等,千奇百怪。
不管什么后缀,它就是一个容器,各个公司或机构叫法不同而已。比如把只包含"受信任的公钥"的容器存成.truststore文件等。
用jdk\bin目录下的keytool.exe对其进行查看,导入,导出,删除,修改密码等各种操作。
可以对jks容器加密码,输入正确才可以操作此容器中密钥。
还有一个密码的概念与上者不同,是jks中存储着的私钥的密码,通常是绝密的。

pfx:
和jks功能相同但文件格式不同,pfx是浏览器用的。
可以用一些工具程序把pfx转化成jks格式供java程序使用(如银行只提供了pfx,但是我们想用httpclient模拟浏览器自动访问时)。
据说IE导出的pfx格式不标准,转化jks时往往报错,可以尝试用Netscape Navigator导入再导出,然后再转化。碰到过这样的情况。

常见的几种https系统的访问
经https协议的数据经过加密传输,防止第三方监听,冒充和篡改。
1.不需要用户做任何操作,比如https://www.verisign.com/
这是因为此公钥是合法的(公钥是可信任的机构颁发,和实际域名吻合,而且没有到期)。用IE访问时空白处点右键可以查看公钥信息。
2.https的页面会弹出公钥确认提示
公钥不合法(不是可信任的机构颁发,和实际域名不吻合,已到期),但用户点“是”即表示忽略危险,继续访问。
3.需要往浏览器倒入一个文件才可访问的
一般是银行在线交易等特别需要安全的场合,站方(银行)需要验证访客身份(如要确认必须是已注册的网银商户),需要在浏览器中导入含有访客私钥的pfx文件。

生成jks:
在银行没有提供jks文件的情况下对帐,需要自己生成jks
对于1,2类https网站,如果java程序访问此地址时在jre默认的信任库中找不到对方证书的颁发机构,则会抛出安全方面的异常。
所以要将站方公钥存进一个jks,并在环境变量中设定,表明信任此库中的公钥,才可以正常访问。
我是用现成的make_jks的工具类在程序中读取https://xxxx地址,程序自动抓取出银行公钥并存进一个jks文件。
在浏览器中查看站方公钥时,把公钥导出(一般是cer后缀),然后用keytool.exe手工将此cer导入一个jks或许也可以?没试过。
以上1,2类https网站,仅仅是用到了公钥的“验证对方身份”功能。
对于第3种https网站,也可以找到现成的程序把pfx直接转成jks。
既然动用了pfx,一般是把公钥的两个用途和私钥的两个用途都用起来。

文章来源:http://yijianfengvip.blog.163.com/blog/static/175273432201162193348604/

银行接口的私钥和公钥详解相关推荐

  1. Java8-5-Function函数式接口进阶与默认方法详解

    Java8-5-函数式接口进阶与默认方法详解 上一篇我们快速的借助示例演示了stream api的简单应用,体会到了使用stream api对集合处理的便捷和其与函数式接口密不可分的关系,所以为了更高 ...

  2. 转载:linux驱动层到应用层的重要接口sys文件系统---/sys目录详解

    linux驱动层到应用层的重要接口sys文件系统---/sys目录详解 Linux2.6内核中引入了sysfs文件系统.sysfs文件系统整理的设备驱动的相关文件节点,被视为dev文件系统的替代者.同 ...

  3. 调用百度ai接口实现图片文字识别详解

    调用百度ai接口实现图片文字识别详解 首先先介绍一下这篇博文是干嘛的,为了不浪费大家时间.公司最近和短视频公司合作,需要监控app的截图上的文字是否符合规范,也就是确保其没有违规的文字.到网上找了一些 ...

  4. TYPE-C接口的工作原理图文详解

    TYPE-C接口的工作原理图文详解 发表于 2018-01-29 09:53:53 电子常识 +关注 2016年,有一个名词在手机上非常火,几乎所有的旗舰手机都会提到这个名词,说到这,大家应该都够猜到 ...

  5. [享学Eureka] 三十一、DiscoveryClient透彻解析(八):接口方法和shutdown()方法详解

    成为一个成功者最重要的条件,就是每天精力充沛的努力工作,不虚掷光阴. –> 返回Netflix OSS套件专栏汇总 <– 代码下载地址:https://github.com/f641385 ...

  6. 公钥与私钥,HTTPS详解

    1.公钥与私钥原理 1)鲍勃有两把钥匙,一把是公钥,另一把是私钥 2)鲍勃把公钥送给他的朋友们----帕蒂.道格.苏珊----每人一把. 3)苏珊要给鲍勃写一封保密的信.她写完后用鲍勃的公钥加密,就可 ...

  7. FPGA学习之路—接口(3)—SPI详解及Verilog源码分析

    FPGA学习之路--SPI详解及Verilog源码分析 概述 SPI = Serial Peripheral Interface,是串行外围设备接口,是一种高速,全双工,同步的通信总线. 优点 支持全 ...

  8. java类与接口思维导图_详解java接口基础知识附思维导图

    接口: 官方的含义是---->java接口是一系列方法的声明,是一些方法特征的集合 疑问: 那为什么不用抽象类呢?把他们共有的方法集合起来放在一个抽象类里面,同样可以调用哇,但是反过来想一想如果 ...

  9. Arduino TFT_eSPI库来驱动SPI接口的LCD显示文字详解

    Arduino TFT_eSPI库来驱动SPI接口的LCD显示详解 相关库github地址:https://github.com/Bodmer/TFT_eSPI 文字显示过程详解 TFT eSPI显示 ...

最新文章

  1. 2016 多校赛3 A 水 B 期望,规律 C 各种博弈 J 物理题,积分 K 暴力,水
  2. Logstash(二)input、codec插件详解
  3. Android开机画面~(自己还没试验)
  4. 阿里云Lindorm联合智臾科技发布,金融高频交易数据量化分析与处理方案
  5. asp.net C# 直接读取或访问其它网站的URL示例
  6. php 静态成员(static)抽象类(abstract)和接口(interface)
  7. 计算机的发展英语600词,程序员必备的600个英语词汇
  8. 开源数据同步神器——canal
  9. 百度发布全新 NLG 训练模型 ERNIE-GEN,获 5 项 SOTA!
  10. SBT管理java项目
  11. 随手记--计算机网络原理
  12. java异步文件读写文件,Java AsynchronousFileChannel和Future读取文件
  13. ubuntu中非常好用的PDF软件—okular
  14. 签名验证反爬,反反爬第二篇博客,Python爬虫120例
  15. 远程视频监控必备专业知识
  16. 电脑运行速度慢的处理
  17. 打印机相关的c语言程序,VC下打印机的使用
  18. 简述什么是FBV和CBV
  19. 打鱼晒网问题(C++)
  20. 前置自增加++与后置自增加++区别,前后自减同理

热门文章

  1. 微信小程序使用场景延伸:扫码登录、扫码支付
  2. 用python读取股票价格_雅虎API获取股票数据--Python
  3. QQ邮箱停运,如何使用网易163邮箱实现邮件发送。
  4. 记一次ceph osd莫名其妙自动关闭进程异常
  5. 微信小程序开发自学笔记 —— 三、理解小程序宿主环境
  6. AR属不属于人工智能?看完本文你就懂了
  7. scratch(图形化编程工具)做3.0版本的猫咪积木模拟器。
  8. 计算机组成原理学习笔记第5章指令系统 5.3——操作数寻址方式
  9. 一、01【Java概述】之Java概述
  10. iPhone苹果手机Apple id帐号如何永久性注销删除数据?