当前位置: 首页 > article >正文

密码学--md5加密

一、前言

        md5的存在是为了创造一个无法被解密的密文。属于hash算法的一种。

        密码学期末考试最后一项。

二、md5加密

1、md5特性

① md5加密后的输出序列固定为16字节

② md5输出的密码不可逆

③ 只要1bit的数据变了,md5的输出结果会完全改变

④ 抗碰撞性,两个不同的数据,输出的md5几乎不可能相同。

2、md5用处

① 密码保护:

网站上不会记录你的密码,只会记录你的密码生成的md5值

假如网站数据库沦陷,你的密码一样不会被泄露。

② 完整性检验:

传输数据时,可以把文件的md5一起传输过去,接收方收到数据后可以进行新一轮的md5加密,并与接收到的md5进行比较

③ 数字签名 :

                        这是个考点,单独讲一下

3、数字签名

        数字签名 和 RSA 还有一定的联系,如果忘了RSA,可以先去看看 RSA 。

        我们写完作业之后都会在作业签上自己的名字,来证明这篇作业是我写的,或者签合同的时候,我们也会签上自己的名字,证明我们知道了这篇合同的存在。

        那网络上的签名要怎么签呢?

① 向有关机构申请 RSA 公钥、私钥。

② 得到即将传输的文件对应的md5值

③ 用RSA的私钥对md5值进行RSA加密,将加密后的md5值和文件一起传给接收方

④ 接收方用你的RSA公钥解密,你传输的加密后md5值,并且接收方自己也计算一下收到的数据

     对应的md5值,并进行比较。

如果两个md5值一样,说明是你签过名的文件。

如果两个md5值不一样,有两种可能,一是文件被篡改,二是有人模仿你的签名

4、加密流程

① 将数据补位,补成N*512 + 448位 (如果数据已经等于N*512 + 448位,就再加 512 位),补位内容为 10000000...,首位为1,后面全是0

② 补位完成的 N*512 + 448位 ,再补64位,这64位记录数据的长度

③ 准备四个标准幻数,每个幻术4字节(16进制 内容固定)

        A = 01234567        B = 89ABCDEF

        C = FEDCBA98     D = 76543210

④ 每次取 512 位(64字节),分为 16 份,1 份 4 字节,并与幻数进行一系列操作(不考),最后得到的值再与 4个幻数 的初始值相加 得到新的四个幻数,再进行第二轮,直到取完 最后一个512 位数据,输出最终加密结果。

⑤ 由于4个幻数的计算都是移位或者异或,长度始终是16字节,因此输出的md5也是固定16字节的。

 

http://www.lryc.cn/news/2417640.html

相关文章:

  • FileZilla工具的使用以及主动模式与被动模式
  • 快速了解Spring(超详细+干货满满)
  • 【TS】2134- 重新学习 TypeScript 类型系统
  • ce Cheat Engine 环境搭建
  • Nopepad++使用教程
  • 深入理解Electron一Electron架构介绍
  • Elasticsearch-基础介绍及索引原理分析
  • VMware16Pro虚拟机安装教程(超详细)
  • python下载安装教程电脑版,Python下载安装后找不到
  • 使用MobaXterm ssh免密远程连接虚拟机
  • WEPE系统安装纯净版window11教程(包含pe内系统安装方法)
  • 【Unity3D】Unity3D学习笔记
  • 最新Node.js安装详细教程及node.js配置
  • base64编码解码器【C++】
  • Git指南(一)
  • IDE开发工具Idea使用
  • mysql知识点详细总结
  • 算法笔记(一)—— KMP算法练习题
  • vue-必备知识点,图文详解
  • VSCode初级使用教程详细版
  • 科技概念/名词解释
  • 计算机毕设ssm基于BS的高校学生毕业去向管理系统的设计与实现3l47e9(源码+数据库+LW)
  • 多吉搜索不能用了_百度搜索骚技巧,瞬间找到你想要的资源
  • 关于调用静态链接库LIB,提示重定义或库冲突的错误
  • saltstack-redhat6.5版本
  • 难倒了N个硕士和博士的三年级奥数题
  • 博客(Blog)的商业价值实现模式探讨
  • 使用hydra离线破解windows密码
  • 在Windows中使用TCP端口139和445
  • InfoQ-China发布在即,敬请关注支持