转载:https://blog.csdn.net/jiangyu1013/article/details/73290371

安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。该算法经过加密专家多年来的发展和改进已日益完善,并被广泛使用。该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。散列函数值可以说是对明文的一种“指纹”或是“摘要”所以对散列值的数字签名就可以视为对此明文的数字签名。

SHA-1是一种数据加密算法,该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。
单向散列函数的安全性在于其产生散列值的操作过程具有较强的单向性。如果在输入序列中嵌入密码,那么任何人在不知道密码的情况下都不能产生正确的散列值,从而保证了其安全性。SHA将输入流按照每块512位(64个字节)进行分块,并产生20个字节的被称为信息认证代码或信息摘要的输出。
该算法输入报文的长度不限,产生的输出是一个160位的报文摘要。输入是按512 位的分组进行处理的。SHA-1是不可逆的、防冲突,并具有良好的雪崩效应。
通过散列算法可实现数字签名实现,数字签名的原理是将要传送的明文通过一种函数运算(Hash)转换成报文摘要(不同的明文对应不同的报文摘要),报文摘要加密后与明文一起传送给接受方,接受方将接受的明文产生新的报文摘要与发送方的发来报文摘要解密比较,比较结果一致表示明文未被改动,如果不一致表示明文已被篡改。
MAC (信息认证代码)就是一个散列结果,其中部分输入信息是密码,只有知道这个密码的参与者才能再次计算和验证MAC码的合法性。

SHA-1与MD5的比较
因为二者均由MD4导出,SHA-1和MD5彼此很相似。相应的,他们的强度和其他特性也是相似,但还有以下几点不同:
l 对强行攻击的安全性:最显著和最重要的区别是SHA-1摘要比MD5摘要长32 位。使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD5是2128数量级的操作,而对SHA-1则是2160数量级的操作。这样,SHA-1对强行攻击有更大的强度。
l 对密码分析的安全性:由于MD5的设计,易受密码分析的攻击,SHA-1显得不易受这样的攻击。
l 速度:在相同的硬件上,SHA-1的运行速度比MD5慢。

SHA 加密是什么( sha1 和 MD5 的区别 )相关推荐

  1. 什么是SHA系列算法,SHA-1和MD5算法有什么区别

    有些朋友在研究微信支付接口的时候,发现它们不仅支持MD5摘要的验签,还支持SHA-256摘要.那么这个SHA是什么呢?别着急,本文将和大家说一说什么是SHA系列算法,SHA这么多版本之间有什么不同,以 ...

  2. AES加密解密SHA1、SHA加密MD5加密

    AES加密解密 SHA1.SHA加密 MD5加密 二话不说马上附上代码: package com.luo.util; import java.io.UnsupportedEncodingExcepti ...

  3. 什么是 SHA 加密? SHA-1 与 SHA-2

    安全哈希算法 (SHA) 是一种用于加密数据的哈希算法. 了解什么是 SHA.它的工作原理以及可用的不同类型对于任何在线企业来说都是必不可少的. 什么是 SHA 加密? 安全哈希算法 (SHA) 是美 ...

  4. JS的3种加密方式:base64编码、md5加密及sha加密

    用法总结:创建加密js文件,引入加密js 注:md5.sha1加密方式有多种方法可用 1.加密js文件 1.1base64.js function Base64() {// private prope ...

  5. MD5和SHA加密实现

    @Testpublic void TestMD5AndSHA() throws NoSuchAlgorithmException {String MD5=Md5("123456") ...

  6. java md2_java中加密的实现方法(MD5,MD2,SHA)

    java中加密的实现方法(MD5,MD2,SHA) 实例代码:注释都很清楚, import java.security.MessageDigest; import javax.xml.bind.ann ...

  7. MD5,MD2,SHA加密的实现方式

    import java.security.MessageDigest;import javax.xml.bind.annotation.adapters.HexBinaryAdapter;public ...

  8. Java 开发中常用的 4 种加密方法。MD5加密工具类测试 base64加密工具类测试 SHA加密工具类测试 BCrypt加密工具类测试

    一.工具类 1, md5加密工具类 2, base64加密工具类 3, Bcrypt工具类 二.加密测试 MD5加密测试 base64加密测试 SHA加密测试 BCrypt加密测试 一.工具类 1, ...

  9. MD5或者SHA加密为32位字符的具体算法,值得学习,标准JAVA MD5方法

    import java.security.MessageDigest; //MD5或者SHA加密为32位字符的具体算法,值得学习 //MD5密码的明文可以通过网站查询:https://www.cmd5 ...

  10. C++ 使用Poco库进行MD5,SHA加密

    C++ 使用Poco库进行MD5,SHA加密 flyfish 头文件 #include <iostream> #include <Poco/MD5Engine.h> #incl ...

最新文章

  1. Delphi中uses在interfeace和implementation中的区别
  2. 【Spring注解系列14】@Profile进行环境切换
  3. oracle 查看日志组切换状态_Oracle 11g ADG 快照备库切换步骤
  4. ORACLE 各种闪回操作
  5. [C++11]override关键字的使用
  6. SpringCloud 从菜鸟到大牛之三 服务拆分 理论
  7. python解题教学_PYTHON教学设计:计算机解决问题的过程教案-精.doc
  8. 基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码
  9. 疑似谷歌Pixel 4真机谍照曝光:边框宽到没朋友
  10. php版canvas,PHP实现将HTML5中Canvas图像保存到服务器
  11. web 前端必备学习指南-精华
  12. R语言初级教程: R编程环境的搭建
  13. 利用ES4封装Windows10
  14. Qt 安装组件及其说明(by shany shang)
  15. cad小插件文字刷_CAD实用小插件,这是一串让你效率提升相见恨晚的代码!
  16. st188脉搏传感器工作原理_各种传感器工作原理动态图,拿走不谢~
  17. excel 电阻并联计算_3个并联电阻计算公式 并联电阻计算公式计算方法
  18. 已配置好环境,在CMD中输入adb命令,还是提示“‘adb‘ 不是内部或外部命令,也不是可运行程序或批处理文件”的解决方法
  19. Navicat Premium 12安装激活教程_不需要激活工具直接激活
  20. 毕业设计:基于STM32与机智云平台的远程控制智能家居系统

热门文章

  1. 腾讯云cdn设置 php,腾讯云CDN开启中间源导致wordpress后台无法访问的最终解决办法...
  2. 玩转数据可视化之R语言ggplot2:(一)ggplot2实现箱线图、小提琴图、直方图等图形(快速入门)
  3. 推荐10本必读的心理学书籍
  4. 2021-2027全球与中国大数据工程服务市场现状及未来发展趋势
  5. 2022最新软件测试面试题,看完还怕拿不到offer?
  6. 谷歌浏览器截取整个网页为图片(无需插件)
  7. 各种路由的概念-直连路由、网关路由、主机路由、网络路由等
  8. 小米路由R4A千兆版安装breed+OpenWRT教程以及救砖(全脚本无需硬改)
  9. html 内使用复制功能
  10. Excel表格快捷键使用