今天我们来讲讲系统间的交互需要哪些必要的东西才能确保互相通信会没有问题呢?

首先来看看最传统的系统交互,即两者直接互相明文传送,在这种情况下,若是被第三方拦截,会造成不可预估的影响。那么针对这种情况我们应该如何避免呢?那好,我们来看看银联电子支付公司是如何解决这个问题的。他们的解决方案适用于大部分情况下。(下面所描述的A代表商户,B代表CP即ChinaPay)

在交互的过程中,我们必须明确两点:1、假设A和B两者通信的时候,B必须确保是A发送的;2、A发送的报文中途传输的过程中,他人没有修改;如何确保这两点,在回答这两个问题之前,先给大家说下必须有两对公私钥,即A的公私钥、B的公私钥,公私钥的区别,私钥是他人无法获取的,相当于咱们的个人身份证用于标识某个人的;而公钥是可以提供给他人的,这是最直接明了的区别,我们加解密的时候必须是使用哪个公钥加的,就必须要哪个私钥去解密 。好了继续回归正题,首先如何确保上述描述1,即我刚刚说的私钥相当于个人身份证,用它来实现1就再好不过了。那如何确保2呢,hash算法可以了解下,如果还不了解hash算法的话可以去百度百度,正是因为hash算法的不可逆,用它来实现2也最好不过了。好了既然1、2都能想到用什么方法去解决,那好进入咱们今天的主题,加解密、签名、验签。

加密、签名:为什么把这两个放在一起讲呢,因为它俩是A(商户)发送B(CP)的步骤,先说说加密,当报文中有敏感信息的时候,发送给B的时候需要进行加密处理,例如有卡交易域信息等等这个时候需要对它加密,加密算法利用RSA算法,是利用B的公钥进行加密的,加密成功后,放到该字段里,然后将整个报文进行签名处理,上面有说签名是拿自己的私钥去签名的即此处拿A的私钥进行签名的,签名成功后放到Signature字段中,然后将整个报文和Signature一起发送给B(这个时候报文中的value值都是需要URLEncode,防止B接收解析的时候会有出现中文乱码)。

解密、验签:它俩是当B处理完后发送A时,A需要进行的操作,A去解密B发送的加密字段是利用A的私钥解密的(因为B是拿A的公钥去加密的),而A去验签B返回的报文是拿B的公钥(因为B签名的时候是拿自己的私钥进行签名的)。

PS:给一个好记的说辞来总结今天说的内容吧,签名是拿私钥签名;加密是拿公钥加密;只不过私钥公钥用的是哪个角色的,还需要大家明记的!

现在大家懂了这4者的原委了吧。希望大家在面试的时候能够信手拈来!共勉!

讲讲在银联电子支付工作时加解密、签名验签的那些事(纯粹的干货)。相关推荐

  1. golang RSA base64 加解密 签名验签

    1.秘钥.加密/签名字符串加密的格式 目前主要见到有hex及base64 (1)hex 针对hex的加解密 import ("encoding/hex" ) hex.DecodeS ...

  2. 国家医保移动支付国密算法SM2签名验签、SM4加解密DLL

    国家医保移动支付国密算法SM2签名验签.SM4加解密DLL 支持医保移动支付(国家统一版), 已知省份有广西.贵州.安徽.河北.黑龙江.湖南.吉林.江苏.四川.新疆等各地方. DLL,非.net开发, ...

  3. RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密

    RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密 原文:RSACryptoServiceProvider加密解密签名验签和DES ...

  4. B2B电商平台--ChinaPay银联电子支付功能(实战)

                                              奇迹每天都在发生,而你能把握的便是当下,未来已来.............                     ...

  5. chinapay 新版php接口,银联电子支付(chinapay)接口配置

    /** * ECSHOP 银联电子支付(ChinaPay)接口配置 * ---------------------------------------------------------------- ...

  6. 银联电子支付ChinaPay支付回调验证问题

    注意是ChinaPay,银联电子支付,不是UnionPay,不是银联支付,详情请参考这篇文章 https://www.cnblogs.com/qidian10/p/4885038.html 支付回调验 ...

  7. 记在银联电子支付的上线感想

    20170725第二次在银联电子支付中心上线了.给我一个感觉,任何东西都得来个先来后到一说法....... ----------------------------------华丽的分割线 不知不觉时 ...

  8. chinapay java_ECSHOP 银联电子支付(ChinaPay)插件 掉用JAVA签名

    帮客户集成接口时候发现客户网站PHP版本达不到要求 只要调用JAVA来解决问题<?php /** * ECSHOP 银联电子支付(ChinaPay)插件 * ================== ...

  9. Java 实现 RSA 非对称加密算法-加解密和签名验签

    1. 非对称加密算法简介 非对称加密算法又称现代加密算法,是计算机通信安全的基石,保证了加密数据不会被破解.与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密(pr ...

最新文章

  1. TensorFlow 2.7 正式版上线,改进 TF/Keras 调试,支持 Jax 模型到 TensorFlow Lite转换
  2. [转]symbian基本类型转换
  3. 家电换新就现在 国美发放“年中惠民消费大补贴”
  4. Java—TCP与HTTP连接
  5. 当你在浏览器输入一个网址,如http://www.taobao.com,按回车之后发生了什么?
  6. linux用vsc写c语言,vscode写c语言(windows)
  7. 网页如何做到适应在手机上浏览
  8. 草稿 断开式绑定combobox 1128
  9. 本周Whale Alert监测到7.9万枚BTC在匿名地址间转账
  10. Netflix Media Database - 架构设计和实现
  11. SQL server 2017安装教程
  12. Docker学习笔记:Centos7镜像时区修改
  13. 微信服务号的开发-服务器配置
  14. Windows系统远程桌面连接阿里云Linux Ubuntu
  15. error code
  16. DCloud之Android平台应用启动时读写手机存储、访问设备信息(如IMEI)等权限策略控制
  17. c++ IP地址离线查询
  18. Handler 简介
  19. 概率论与数理统计-------参数估计-------区间估计------置信区间、枢轴变量
  20. 超级简洁的Python风格加解密

热门文章

  1. 中兴交换机三种接口类型access,trunk,hybrid
  2. 爬取喜马拉雅FM分类榜的代码分析
  3. 元气骑士 自建服务器,30分钟简易复刻《元气骑士》地图生成系统
  4. 7_DoubleBuffer 游戏编程中的双缓存模式
  5. SZTUOJ 1017.火柴人
  6. 新手学习Python有需要去培训的必要吗?
  7. ViewStub 测试Demo By Terry
  8. 如诗的别离——品读TERRY的告别邮件
  9. 深入浅出工控机防病毒安全现状
  10. asp.net--ListView中ItemTemplate设置与功能按钮