支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹

简介: 支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹

09-尚硅谷-微信支付-支付安全-数字签名_哔哩哔哩_bilibili

现在Bob想要给Pink写一封信,信件的内容不需要加密

信件的内容不需要加密,怎样能够保证信息的完整性

使用信息完整性的主要手段是摘要算法,散列函数,哈希函数

我们假设一个任意长度的字符串数据z经过哈希运算之后

经过运算之后会得到一个固定长度H,H称为数据指纹或者摘要

MD5也是一种

摘要算法的四大特性,第一个不可逆,它只有算法,没有秘钥

AES算法属于对称加密的一种,需要一个密钥去加密和解密,而RSA算法是非对称加密的典型算法,公钥和私钥,因此无论是对称加密还是非对称加密都是需要钥匙

第二个是难题友好性,要想得到难题的答案,只能够暴力枚举,从h破解z,只能一个个实验

第三个是发散性,只要对原文有一点点改动,摘要就会剧烈变化

雪崩效应,只有有一点点,改变,计算后的摘要也不同

第四个是碰撞性,经过摘要运算后它的数据长度是固定的,相当于把一个大空间缩小到了小空间也可以是冲突,经过摘要运算之后,可能会有两份不同的原文对应同一份摘要,两个不同z对应同一个h,好的摘要算法必须抵抗冲突,让这种可能性尽可能小

目前流行的摘要算法,有MD5 SHA1以及SHA2

MD5和SHA1被证明不具有强的碰撞性,用的比较多的是SHA2(统称),SHA224, 意思是能够生成24个字节,32个字节,48个字节对应下面的内容

如何通过摘要运算保证信息不被篡改,第一步利用摘要算法,生成信件原文摘要

也就是message digest

第二步 bob将摘要附在信件原文下面,一起发送给pat

第三步bob收到信之后,也使用和Bob一样的摘要算法,得到信件原文和摘要

第四步 pat将加密后的摘要和bob在原文中附加的摘要做一下对比,如果一致,说明信件没有被篡改,

有一个致命的漏洞,如果信件被黑客获取,并且黑客直接修改了原文,并且根据原文直接生成了新的摘要,然后附加在原文下面,伪装成bob给pat发送信件,给Pat接收后,这时候Pat是完全察觉不出来的

摘要算法的一大特点是不具有机密性,如果明文传输,那么黑客可以在修改原文之后,把摘要一起改了,那么说我们还是没有办法,鉴定信息传输的完整性

如果才能够真正保证数据无法被篡改呢?答案是一定要加入密钥,从而确保信息的机密性

来看一下加入密钥之后的摘要算法:第一个步骤,Bob写完之后先用摘要算法,生成信件的摘要

第二个步骤将Bob将私钥加入其中,加密的结果,我们称为数字签名

第三个步骤,Bob将数字签名附在信的原文

收到信的操作:

第一步pat取下数字签名之后,用bob公钥解密得到信件摘要

第二步bob的公钥解密得到信件的摘要

第三步,pat将前面得到的摘要进行比对

如果一致就Bob法的,并且没有经过篡改

这个过程我们将他作为验签

如果黑客没有对应的私钥

就无法对摘要进行加密

经过以上步骤,pat就可以将信件原文取出来了

数字签名可以保证信息传递过程中不被修改

相关文章
|
8月前
|
存储 JSON 安全
加密和解密函数的具体实现代码
加密和解密函数的具体实现代码
1222 136
|
10月前
|
存储 关系型数据库 MySQL
MYSQL数据加密压缩函数应用实战指南。
总的来说,加密和压缩是维护MySQL数据库中数据安全性和效率的有效手段。使用时需权衡性能与安全,合理应用加密和压缩函数。在设计数据库架构时要考虑到加密字段的查询性能,因为加密可能使得一些索引失效。压缩数据能有效减少存储空间的占用,但在服务器负载较高时应避免实时压缩和解压,以免影响总体性能。
332 10
|
JSON 安全 定位技术
微信附近人提取v3脚本, 微信附近人id提取技术插件,采集附近人wxid数据工具
本内容介绍微信“附近的人”功能的技术原理与实现方法,基于LBS服务,涉及位置模拟、协议分析及数据解析。通过修改GPS坐标或使用Frida等工具hook位置函数
|
缓存 小程序 API
微信小程序页面导航与路由:实现多页面跳转与数据传递
本文深入探讨微信小程序的页面导航与路由机制,介绍多种页面跳转方式如`wx.navigateTo`、`wx.redirectTo`、`wx.switchTab`等,并讲解通过URL、全局变量和事件传递数据的方法。结合案例实现多页面跳转与数据传递,帮助开发者掌握这一重要技能。
|
缓存 小程序 API
微信小程序网络请求与API调用:实现数据交互
本文深入探讨了微信小程序的网络请求与API调用,涵盖`wx.request`的基本用法、常见场景(如获取数据、提交表单、上传和下载文件)及注意事项(如域名配置、HTTPS协议、超时设置和并发限制)。通过一个简单案例,演示了如何实现小程序与服务器的数据交互。掌握这些技能将帮助你构建功能更丰富的应用。
|
数据库 数据安全/隐私保护 Windows
Windows远程桌面出现CredSSP加密数据修正问题解决方案
【10月更文挑战第30天】本文介绍了两种解决Windows系统凭据分配问题的方法。方案一是通过组策略编辑器(gpedit.msc)启用“加密数据库修正”并将其保护级别设为“易受攻击”。方案二是通过注册表编辑器(regedit)在指定路径下创建或修改名为“AllowEncryptionOracle”的DWORD值,并将其数值设为2。
12687 3
|
自然语言处理 搜索推荐 小程序
微信公众号接口:解锁公众号开发的无限可能
微信公众号接口是微信官方提供的API,支持开发者通过编程与公众号交互,实现自动回复、消息管理、用户管理和数据分析等功能。本文深入探讨接口的定义、类型、优势及应用场景,如智能客服、内容分发、电商闭环等,并介绍开发流程和工具,帮助运营者提升用户体验和效率。未来,随着微信生态的发展,公众号接口将带来更多机遇,如小程序融合、AI应用等。