支付系统-微信支付10--数字证书,我Doug谎称自己手中公钥是Bob的公钥 ,谁都可以发送公钥,怎样判断公钥是真实的呢?Doug就可以用自己私钥做成数字签名给pat,而Pat用假的公钥进行验签,数字

简介: 支付系统-微信支付10--数字证书,我Doug谎称自己手中公钥是Bob的公钥 ,谁都可以发送公钥,怎样判断公钥是真实的呢?Doug就可以用自己私钥做成数字签名给pat,而Pat用假的公钥进行验签,数字

10-尚硅谷-微信支付-支付安全-数字证书_哔哩哔哩_bilibili

我Doug谎称自己手中公钥是Bob的公钥

然后Doug就可以用自己私钥做成数字签名给pat

而Pat用假的公钥进行验签

Pat误以为是在跟Bob进行通信,实际上是在跟Doug进行通信

谁都可以发送公钥,怎样判断公钥是真实的呢?

解决这个问题的答案就是数字证书

为了防止公钥被盗,Bob的公钥就放到数字证书当中,不采用公开的形式了

所有者:一般是包含某个人,某个公司,域名

颁发者,CA ,有效期证书的使用期限,一旦超过期限就会被作废

签名哈希算法,证书本身也是一种信息,为了防止证书本身被篡改,CA在颁发证书的时候,指定证书的摘要,来计算证书的摘要

指纹算法生成的东西,保证证书的完整性

签名算法,用于生成签名,确保证书是由CA生成的,序列号是证书的唯一标识

看一下数字证书的流程

序列号是证书的唯一标

第一步利用数字证书信息记录的算法,根据证书信息,计算摘要,也就是指纹

第二步,然后证书根据他的签名算法,利用CA的私钥,将指纹进行加密,生成证书的签名

最后把证书和签名一起发布,得到签名

最后Bob得到数字证书

之后为了区分是不是Bob,签名再加上数字证书就行了

利用他的算法解析证书

之后将摘要进行比较,比较通过说明验签成功

验签通过,再取出公钥,因为在证书中定义证书所有者了,所以Dog就无法伪造证书了

此时此刻就保证了发送人和信件的信息一致性了


相关文章
|
11天前
|
缓存 JavaScript 前端开发
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)更新时间(2020-10-29)
|
1月前
|
安全 API Windows
支付系统13------支付系统的资料在技术库里的在线支付当中,怎样获取微信平台证书那?怎样获取微信平台证书那?第一步打开我们的微信支付平台的文档中心
支付系统13------支付系统的资料在技术库里的在线支付当中,怎样获取微信平台证书那?怎样获取微信平台证书那?第一步打开我们的微信支付平台的文档中心
|
1月前
|
存储 前端开发 Java
支付系统----微信支付17-----定义统一结果,返回时间格式不一样,怎样解决
支付系统----微信支付17-----定义统一结果,返回时间格式不一样,怎样解决
|
1月前
|
SQL 关系型数据库 MySQL
支付系统----微信支付18-----创建并连接数据库
支付系统----微信支付18-----创建并连接数据库
|
1月前
|
XML Java 数据格式
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法
|
1月前
|
JavaScript 开发工具
支付系统----微信支付22------初始化Vue项目,npm run serve -- -- port 8888,Vue默认打开是8888的写法
支付系统----微信支付22------初始化Vue项目,npm run serve -- -- port 8888,Vue默认打开是8888的写法
|
1月前
|
JavaScript
支付系统---微信支付23-数据绑定和事件,使用Vue调试要添加扩展,F12与console平级就出现了Vue,在支付资料,微信支付,04资料,工具里
支付系统---微信支付23-数据绑定和事件,使用Vue调试要添加扩展,F12与console平级就出现了Vue,在支付资料,微信支付,04资料,工具里
|
1月前
|
API
支付系统----微信支付24--APlv3介绍,首先我们要引入支付参数,包含商户号,APPID、API秘钥,数字证书,用代码加载到应用程序当中,之后加载商户私钥,商户需要用私钥进行验签,微信平台接收商
支付系统----微信支付24--APlv3介绍,首先我们要引入支付参数,包含商户号,APPID、API秘钥,数字证书,用代码加载到应用程序当中,之后加载商户私钥,商户需要用私钥进行验签,微信平台接收商
|
1月前
|
前端开发
支付系统--微信支付21--搭建前端环境,payment-demo-front这个项目文件夹是前端显示文件,payment-demo是后端项目,支付页面常见三个页面:购买课程,我的订单,下载账单
支付系统--微信支付21--搭建前端环境,payment-demo-front这个项目文件夹是前端显示文件,payment-demo是后端项目,支付页面常见三个页面:购买课程,我的订单,下载账单
|
1月前
|
XML 关系型数据库 MySQL
支付系统----微信支付19---集成MyBatis-plus,数据库驱动对应的依赖版本设置问题,5没版本没有cj这个依赖,mysql驱动默认的是版本8,这里是一个父类,数据库都有,写个父类,继承就行
支付系统----微信支付19---集成MyBatis-plus,数据库驱动对应的依赖版本设置问题,5没版本没有cj这个依赖,mysql驱动默认的是版本8,这里是一个父类,数据库都有,写个父类,继承就行

热门文章

最新文章