一、单向散列算法

1. 单向散列函数

单向散列函数是一类满足密码学算法安全属性的特殊散列函数,可以根据消息的内容计算出散列值,又称为安全散列函数或者哈希函数,通常用于检验消息完整性。

输入数据称为消息,计算出的散列值称为消息摘要(摘要)

单向散列函数具有如下特点:

  • 输入长度任意;
  • 输出长度固定
  • 单向性:无法根据散列值还原出消息;

单向散列函数主要用在:

  • 消息完整性检测;
  • 构造伪随机数生成算法;
  • 消息认证码;
  • 数字签名;
  • 一次性口令;

2. 单向散列算法

单向散列算法是单向散列函数的实现,主要包括两大算法实现:MD4/5系列实现、SHA系列实现。

2.1. MD系列实现

MD系列算法最早是MD4,后来诞生了MD5,两者都可以产生128 bit 的散列值。

2.2. SHA系列算法

SHA系列算法由美国国家标准与技术研究所NIST确定,主要包含以下几个:

  • SHA0:1993年发布,可以产生160 bit 的消息摘要,但是存在重大缺陷被撤销;
  • SHA1:1995年发布,可以产生160 bit 的消息摘要,也存在缺陷(不推荐使用);
  • SHA2:包括SHA256算法、SHA384算法、SHA512算法;
  • SHA3:支持与SHA2相同的消息摘要长度,但是算法内部结构不同;

 

MD5、SHA1、SHA256、SHA512相关推荐

  1. c# 实现MD5,SHA1,SHA256,SHA512等常用加密算法

    using System; using System.IO; using System.Data; using System.Text; using System.Diagnostics; using ...

  2. java sha1加密ascii码_MD5,SHA1,SHA256,SHA512等常用加密算法

    using System; using System.IO; using System.Data; using System.Text; using System.Diagnostics; using ...

  3. .net实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密

    写项目时,后台一直用md5加密,一天群里人问,除了MD5还有其它的加密方法吗?当时只知道还有个SHA,但怎么实现什么的都不清楚,于是当网上找了下,把几种常见的加密方法都整理了下,用winform写了个 ...

  4. linux密码sha512,如何在Linux上检查SHA1,SHA256和SHA512哈希 | MOS86

    你如何知道你刚才下载的4 GB文件是否已经被传输没有错误?一种方法是使用产生一个的哈希算法像人类指纹一样,生成的字符串意味着是唯一的,只有该文件可以产生该指纹.像Fedora这样的Linux发行版,提 ...

  5. 利用openssl来计算sha1, sha224, sha256, sha384, sha512

    转载:http://blog.csdn.net/stpeace/article/details/42371079 利用openssl来计算sha1, sha224, sha256, sha384, s ...

  6. win10校验MD5,SHA1,SHA256

    Windows的命令行也自带了MD5,SHA1,SHA256等校验工具,它就是certutil命令. 使用方法很简单: certutil -hashfile yourfilename.ext MD5 ...

  7. 【密码算法 之八】Hash类算法(单向散列函数) MD5 \ SHA1 \ SHA224 \ SHA256 \ SHA384 \ SHA512等浅析

    1. 综述   Hash算法,又称单向散列函数(one-way hash function).   单向散列函数有一个输入和一个输出,其中输入称为消息(message),输出称为散列值(hash va ...

  8. 各种加密解密函数(URL加密解密、sha1加密解密、des加密解密)

    普通hash函数如md5.sha1.base64等都是不可逆函数.虽然我们利用php可以利用这些函数写出可逆函数来.但是跨语言时这类可逆函数非常难搞定.所以这时尽量使用AES DES RC4 Rabb ...

  9. python加密解密 sha256_Python hashlib库的使用|md5加密,sha1加密,sha256加密

    一.为什么我们需要引用hashlib库?安全安全安全! 任何允许用户登录的网站或app都会存储用户登录的用户名和口令.密码一般都不会以明文的方式进行存储,如果黑客登陆了你的数据库系统或者你的数据库泄露 ...

  10. linux加密解密基础、PKI及SSL、创建私有CA

    linux加密解密基础.PKI及SSL.创建私有CA 1.加密解密基础:            数据在网络中传输过程中要保证三个要点: (1)数据的完整性:防止数据在传输过程中遭到未授权用户的破坏或篡 ...

最新文章

  1. c语言运动会成绩统计报告,C语言程序设计运动会成绩统计系统1研究报告.doc
  2. 卷积神经网络CNN结构
  3. jQuery 学习-样式篇(一):如何引用 jQuery
  4. Sandwell模型和卫星测高反演海底地形
  5. 计算机基础骨干培训心得体会,大学计算机基础精品课程培训之心得体会
  6. QTreeView宽度
  7. matlab提高循环运行效率,提高MATLAB运行效率
  8. hihocoder #1828 : Saving Tang Monk II(BFS)
  9. ROC曲线的绘制过程/AUC/TPR、FPR、敏感度和特异度
  10. 【点云阅读笔记】Learned Point Cloud Geometry Compression
  11. 怎样做项目计划(转载)
  12. linux的的符号,Linux 常见特殊符号
  13. 随笔-杂记-将对您的电脑造成伤害。 您应该将它移到废纸篓
  14. 绿卡日记:2020-11-20
  15. 基于LSTM实现股票预测
  16. 基于交替迭代法的通用型交直流潮流计算方法(matlab版+python版)
  17. MySQL--数据库、表基本操作
  18. word“域”的使用方法(转)
  19. Au 效果器详解:单频段压缩器
  20. 出生日期输入输出------C语言

热门文章

  1. 应用计算机测定线性电阻伏安特性实验结论,电路分析实验报告(电阻元件伏安特性的测量)...
  2. 计算机和工业设计哪个就业前景大,工业设计就业前景女生
  3. Phaser 3 入门实例教程
  4. 京东快递查询延误物流信息的方法
  5. nacos配置中心提示com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exceptio
  6. web 实时刷新 websocket 大数据
  7. maf相关代码和命令
  8. android edittext底线,Android定制自己的EditText轻松改变底线颜色
  9. 网络推广恶意点击js_百度搜索推广碰到恶意点击该怎么解决
  10. HDU-3605 Escape