消息摘要算法

2023-11-16

概述

在这里插入图片描述
看图,我们在下载commons-codec时候会有这么一个页面,我们点md5会有一个值,这个值是做什么呢?为什么会有这么一个值呢?这就是消息摘要算法的作用,验证数据的完整性。
消息摘要算法是数字签名的核心算法

MD(Message Digest)

在MD算法家族有MD2、MD4、MD5,从名称上看就可以看出它们的出现先后顺序,安全性也是一代比一代更强。我们过去使用的电驴用的是MD4算法,并且是对MD4算法做了改进,通过改进后主要用于对于要下载的文件做分块,都下载后再验证完整性。

算法 摘要长度 实现方
MD2 128 jdk
MD4 128 Bouncy Castle
MD5 128 jdk

demo:todo

应用
在这里插入图片描述
注册的方式:
1.用户注册,把用户名、密码发送到服务器
2.对密码进行消息摘要处理
3.把摘要保存到数据库密码列

登陆的方式:
1.用户登陆,把用户名、密码输入
2.应用服务器对密码做摘要处理
3.通过用户名查询密码摘要
4.返回登陆结果

这样就可以把密码保护起来,通过数据库也看不到密码。几年前csdn的数据库被一些人搞到了,这时大家发现csdn的数据库对密码使用明文存储的,这样就造成了泄露大量的用户信息。csdn官方也及时做出了应对处理,让大家及时改密码。这事如果是发生在证券交易所、银行、基金这些网站上,那这个时候损失的就不仅仅是一些积分,这时候就是钱的事了。

SHA(Secure Hash Algorithm)

安全散列算法的简称,和MD一样都是固定长度摘要信息。SHA在很多场景被认为是MD的继承者,还有美国的官方背景,是美国的国家安全局设立,被美国的国家标准技术院发布的一些列散列函数,为什么说是一些列呢?因为SHA包含了SHA-1、SHA-2(SHA-224、SHA-256、SHA-384、SHA-512) 五种,但是人们通常喜欢把SHA-1外的统称为SHA-2。
是在MD4基础上演变出来的,和MD不同的是如果输入的消息对应的消息摘要的结果是差别是很大,这就没法判断一些很相近的东西,破解很难。不过,神农大学的王小云已经把MD5、SHA-1算法给破解了。

算法 摘要长度 实现方
SHA-1 160 JDK
SHA-224 224 Bouncy Castle
SHA-256 256 jdk
SHA-384 384 jdk
SHA-512 512 jdk

Demo: todo

应用:
在这里插入图片描述
浏览器的证书就是一个实际应用的例子。
在这里插入图片描述

  1. 发送方公布消息摘要算法
  2. 发送方对待发送的消息做摘要处理
  3. 发送摘要消息
  4. 发送消息
  5. 接收方对消息做摘要,和收到的摘要做对比,鉴别消息

MAC(Message Authentication Code)

兼容了MD、SHA的特性,并且加入了秘钥,因此又叫HMAC (keyed-Hash Message Authentication Code),是含有秘钥的散列函数算法。分为两大系列,

  • MD系列:HmacMD2、HmacMD4、HMacMD5
  • SHA系列:HmacSHA-1、HmacSHA-224、HmacSHA-256、HmacSHA-384、HmacSHA-512

应用如SecureCRT

算法 摘要长度 实现方
HmacMD2 128 Bouncy Castle
HmacMD4 128 Bouncy Castle
HmacMD5 128 jdk
HmacSHA-1 160 JDK
HmacSHA-224 224 Bouncy Castle
HmacSHA-256 256 jdk
HmacSHA-384 384 jdk
HmacSHA-512 512 jdk

demo :todo

在这里插入图片描述
1.发送方公布消息摘要算法
2.构建秘钥
3.发送秘钥给接收方
4.对消息做摘要
5.发送消息摘要
6.发送消息
7.消息鉴别

其它

  • RipeMD
  • Tiger
  • Whirlpool
  • GOST3411

这几种只能使用Bouncy Castle

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

消息摘要算法 的相关文章

  • php://filter(文件包含漏洞利用)

    网址 index php page php filter convert base64 encode resource index php 例如 http 120 24 86 145 8005 post index php file php
  • 论文写作 计算机类顶会顶刊,及论文发表指导

    计算机方向的一些顶级会议和期刊 转载 国内的学报期刊 SCI级 但是IF比较低 也不是特别专门针对计算机视觉 物理学报 红外与毫米波学报 etc EI级 自动化学报 光学精密工程 电子学报 软件学报 计算机研究与发展 计算机学报 征稿指南

随机推荐

  • C#通过TCP传送结构体

    1 定义结构体 命名空间 using System Runtime InteropServices 注意这个属性不能少 StructLayoutAttribute LayoutKind Sequential CharSet CharSet
  • 元器件选型实例(如何选一款合适的 DC-DC )

    授人以鱼不如授人以渔 实际项目的元器件选型 如何选择合适的元器件 矜辰所致 目录 前言 一 应用背景 二 选型准备 2 1 考虑因素 通用因数 结合实际 2 2 初步确定方案 三 实际选型 3 1 查找目标 3 2 筛选目标 价格和库存 3
  • 设计模式详解(四)——原型模式

    一 场景问题 在电商系统中 订单服务通常是业务核心模块之一 在提交订单的过程中 往往会出现某个订单数额较大的订单 例如一些企业订单订购公司员工节假日礼品 往往会订购成千上万件 如果不做拆分 就会导致订单票据较长 此时就会有拆分订单的操作 假
  • CSS 媒体查询

  • FTPUpload

    std string g strVer Mozilla 5 0 Windows NT 6 1 WOW64 rv 13 0 Gecko 20100101 Firefox 13 0 1 size t CallBackHeader void pS
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • [vue3]vue3中引入class类的写法

    1 在src utils topu下创建一个ts文件 topu ts class Topu Topu类中涉及到的变量 都要提前在这个部分定义好 width Number 结尾必须顿号 不然报错 height Number data any
  • Android之Adapter用法总结

    1 概念 Adapter是连接后端数据和前端显示的适配器接口 是数据和UI View 之间一个重要的纽带 在常见的View ListView GridView 等地方都需要用到Adapter 如下图直观的表达了Data Adapter Vi
  • 【解决方法】Windows7 任务计划程序 “任务计划程序服务不可用。任务计划程序将尝试重新与其建立连接。”

    目录 问题背景 问题描述 折腾过程 解决方法 适用于我的解决方法 2 其他解决方法 供参考 解决方法1 3 解决方法2 4 解决方法3 4 解决方法4 5 出错原因 参考资料 问题背景 今天刚好给家里的旧电脑加上新的内存条 组了个双通道 顺
  • FTP搭建教程

    FTP搭建教程 目录 一 FTP简介 二 搭建FTP 一 FTP简介 FTP中文为文件传输协议 简称为文传协议 它也是一个应用程序 不同的操作系统有不同的FTP应用程序 这些应用程序都遵守同一种协议以传输文件 FTP主要的功能是 上传 和
  • 1011. 在 D 天内送达包裹的能力

    传送带上的包裹必须在 D 天内从一个港口运送到另一个港口 传送带上的第 i 个包裹的重量为 weights i 每一天 我们都会按给出重量的顺序往传送带上装载包裹 我们装载的重量不会超过船的最大运载重量 返回能在 D 天内将传送带上的所有包
  • 用Python 编写Logistics算法

    我们用Python来自己编写Logistics算法 首先 先将一些理论 Logistics算法用于实现线性可分的二分类问题 1 Sigmoid函数 fx 1 1 exp x Sigmoid函数是常用的阈值函数之一 函数图像如下 是不是很像累
  • Kotlin内部类

    一 内部类 定义在类内部的类 与类成员有相似的访问控制 kotlin 默认是静态内部类 非静态用inner关键字 this outter this inner的用法 二 匿名内部类 没有定义名字的内部类 类名编译时生产 类似Outter 1
  • 算法[第四版]-图灵程序设计丛书-笔记

    第一章 笔记 1 1 9 编写一段代码 将一个正整数 N 用二进制表示并转换为一个 String 类型的值 s public class Conversionbinary public static void main String arg
  • 计算机科学巨匠

    贝尔实验室联合多家准备开发Multics 系统 但是最后退出了 但是却培养了优秀的人才 如肯汤姆森 花了四周时间自己做了一个简化的系统 这就是Unix的雏形 因为简化所以同事称为unics 后来觉得用B语言编写性能差 与Ritchie 合作
  • u版YOLOv3的卷积权重分享

    网上有许多关于预训练权重的分享 但大部分都要收费 官网下载又太慢了 自己就破费一把 本着一人收费 大家共享的原则 将自己花钱下载的权重文件分享出来 yolov3 tiny conv 15 darknet53 conv 74 链接 https
  • 动态规划C语言初学

    动态规划问题解决的基本思想 1 根绝问题所求的那一项和变量的个数 确定是一维数组 二维数组或者多维数组 2 写出初始值 一般是某个变量为1或者0 的特殊情况时候的解 3 通过循环 一般是两个循环中间每一层循环表示一个变量的递增情况 4 在循
  • 查看服务器文件命令,服务器上查看文件命令

    服务器上查看文件命令 内容精选 换一换 您可以使用JDK自带的keytool工具自制客户端的密钥库文件 client p12 再使用第三方openssl工具将client p12转换为client pem 最后根据client pem文件得
  • python期货基本面分析_Python量化炒期货入门与实战技巧

    1 1 初识量化炒期货 2 1 1 1 什么是量化炒期货 2 1 1 2 为什么要学习量化炒期货 3 1 2 量化炒期货的特点 4 1 2 1 严格的纪律性 5 1 2 2 完备的系统性 5 1 2 3 妥善运用套利的思想 5 1 2 4
  • 消息摘要算法

    文章目录 概述 MD Message Digest SHA Secure Hash Algorithm MAC Message Authentication Code 其它 概述 看图 我们在下载commons codec时候会有这么一个页