支付系统---微信支付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就可以将信件原文取出来了

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

相关文章
|
11月前
|
Java 数据安全/隐私保护
对称加密、非对称加密与哈希摘要
本内容介绍了对称加密、非对称加密和哈希摘要的基本概念与区别。对称加密使用同一密钥加解密,速度快但需妥善保管密钥;非对称加密使用公钥加密、私钥解密,安全性高但速度较慢;哈希摘要通过提取数据特征用于完整性校验,能有效区分不同数据。
319 2
|
数据安全/隐私保护
解释对称加密、非对称加密、哈希摘要
加密技术分为对称加密与非对称加密。对称加密使用同一密钥进行加解密,速度快但需严保管密钥;非对称加密则用公钥加密、私钥解密,安全性高但速度较慢。哈希摘要用于验证数据完整性,代表原始数据特征。
323 0
|
11月前
|
安全 算法 Java
在Spring Boot中应用Jasypt以加密配置信息。
通过以上步骤,可以在Spring Boot应用中有效地利用Jasypt对配置信息进行加密,这样即使配置文件被泄露,其中的敏感信息也不会直接暴露给攻击者。这是一种在不牺牲操作复杂度的情况下提升应用安全性的简便方法。
1584 10
|
安全 Java 数据库
Jasypt加密数据库配置信息
本文介绍了使用 Jasypt 对配置文件中的公网数据库认证信息进行加密的方法,以提升系统安全性。主要内容包括:1. 背景介绍;2. 前期准备,如依赖导入及版本选择;3. 生成密钥并实现加解密测试;4. 在配置文件中应用加密后的密码,并通过测试接口验证解密结果。确保密码安全的同时,保障系统的正常运行。
890 3
Jasypt加密数据库配置信息
|
人工智能 安全 Java
Spring Boot yml 配置敏感信息加密
本文介绍了如何在 Spring Boot 项目中使用 Jasypt 实现配置文件加密,包含添加依赖、配置密钥、生成加密值、在配置中使用加密值及验证步骤,并提供了注意事项,确保敏感信息的安全管理。
1680 1
|
算法 数据安全/隐私保护
基于混沌加密的遥感图像加密算法matlab仿真
本项目实现了一种基于混沌加密的遥感图像加密算法MATLAB仿真(测试版本:MATLAB2022A)。通过Logistic映射与Baker映射生成混沌序列,对遥感图像进行加密和解密处理。程序分析了加解密后图像的直方图、像素相关性、信息熵及解密图像质量等指标。结果显示,加密图像具有良好的随机性和安全性,能有效保护遥感图像中的敏感信息。该算法适用于军事、环境监测等领域,具备加密速度快、密钥空间大、安全性高的特点。
|
存储 搜索推荐 算法
加密算法、排序算法、字符串处理及搜索算法详解
本文涵盖四大类核心技术知识。加密算法部分介绍了对称加密(如 AES)、非对称加密(如 RSA)、哈希摘要(如 SHA-2)、签名算法的特点及密码存储方案(加盐、BCrypt 等)。 排序算法部分分类讲解了比较排序(冒泡、选择、插入、归并、快排、堆排序)和非比较排序(计数、桶、基数排序)的时间复杂度、适用场景及实现思路,强调混合排序的工业应用。 字符串处理部分包括字符串反转的双指针法,及项目中用正则进行表单校验、网页爬取、日志处理的实例。 搜索算法部分详解了二分查找的实现(双指针与中间索引计算)和回溯算法的概念(递归 + 剪枝),以 N 皇后问题为例说明回溯应用。内容全面覆盖算法原理与实践
340 0
|
弹性计算 算法 Linux
使用SM4算法加密LUKS格式磁盘
本文介绍了在Anolis 8操作系统使用cryptsetup对磁盘进行分区、加密和挂载的过程。采用SM4加密算法。具体步骤包括:初始化加密卷、解锁加密分区、格式化并挂载设备。最后,展示了如何取消挂载并关闭加密卷以确保数据安全。整个过程确保了磁盘数据的安全性和隐私保护。
1258 2
使用SM4算法加密LUKS格式磁盘
|
安全 网络协议 网络安全
【Azure 环境】从网络包中分析出TLS加密套件信息
An TLS 1.2 connection request was received from a remote client application, but non of the cipher suites supported by the client application are supported by the server. The connection request has failed. 从远程客户端应用程序收到 TLS 1.2 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。连接请求失败。
646 2