首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MD5,SHA和RSA有什么区别?

MD5,SHA和RSA有什么区别?
EN

Security用户
提问于 2011-02-25 14:46:14
回答 2查看 173.1K关注 0票数 46

MD5工具输出十六进制值。以同样的方式,SHA和RSA一起产生十六进制(或任何其他)输出吗?

MD5算法、SHA算法和RSA算法有什么不同?

EN

回答 2

Security用户

发布于 2011-02-25 15:13:03

这不是输出的类型。十六进制只是格式化数据的方式--因为它们都在处理二进制数据,所以十六进制非常有意义。

重要的是他们做了什么以及他们是如何做到的:

  • MD5和SHA是散列函数(SHA实际上是一个散列函数家族)--它们获取一段数据,压缩它,并创建一个非常难以用另一段数据来模拟的合适的唯一输出。他们不加密任何东西-你不能拿MD5或SHA输出和“解散”它回到你的起点。两者的区别在于它们使用什么算法来创建哈希。还要注意的是,MD5现在被破坏了,因为人们发现了一种很容易产生冲突的方法,不应该再使用它,也不应该再信任它了。
  • RSA是一种非标准加密算法。您有两个密钥(私有密钥和公共密钥),您可以使用一个密钥执行一个函数(加密或解密),并使用另一个密钥进行反向操作。您使用的密钥取决于您是试图进行数字签名还是加密。
票数 61
EN

Security用户

发布于 2013-02-03 15:55:02

MD5是密码散列函数。"SHA“是一个散列函数族的名称;首先是一个短寿命的"SHA”,改名为"SHA-0",然后定义为"SHA-1“(畅销书)。后来又增加了新的家庭成员,统称为"SHA-2",由SHA-224、SHA-256、SHA-384和SHA-512组成。最近,一个新的SHA一代被设计,称为"SHA-3“,但也被称为" Keccak”(这是一个公开的竞争,Keccak是一个候选人的代号,谁最终获胜)。

密码散列函数是一种完全定义的、不使用秘密密钥的确定性函数。它以任意长度的消息(位流、任何位)作为输入,并产生固定大小的输出。输出大小取决于函数,MD5为128位,SHA-1为160位,SHA-256为256位。每个人都可以在给定的输入上计算给定的哈希函数,并且都得到相同的结果。哈希函数也被称为摘要,因为它们以某种方式产生了输入的“校验和”或“摘要”。健壮的哈希函数必须是没有人知道如何“反转”它们,甚至找出两个不同的输入,从而产生相同的输出。后者被称为碰撞,碰撞存在是数学上的必然(因为函数可以接受比它能产生不同的输出更多不同的输入),但是我们要求即使找到一个碰撞也是不可行的。

在碰撞方面,MD5被证明是非常坏的(我们可以在PC上工作几秒钟就产生碰撞),而SHA-0在这方面也被破坏了;SHA-1有点不稳定;到目前为止,SHA家族的其他成员似乎很健壮。哈希函数是如何实现冲突抵抗的,这是一个奇迹,因为整个函数是完全已知的,没有秘密值;它只是混合了太多的数据,使得最好的加密人员无法解开这个过程。

RSA是两种算法:非对称加密算法和数字签名算法。虽然这两种算法都建立在相同的数学基础上,但它们非常不同(许多人将签名描述为“用私钥加密”,这是一个缺陷类推,充其量令人困惑,所以不要这么做)。这两种算法都使用密钥,即必须保密的数据块。对于RSA签名,所签名的不是直接给定的消息(位序列),而是消息的哈希:消息首先使用像SHA-256这样的加密哈希函数处理,然后使用哈希值。这是这样做的,因为RSA的数学只能处理中等大小的值,最多几百位。加密哈希函数是这样的,签名哈希就像对原始数据签名一样好。

这样,RSA和密码散列函数经常一起使用,但它们根本不是一回事。

十六进制是一种将位序列表示成字符序列的方法:十六进制使用从'A‘到’F‘的数字和字母;每个字符精确地编码四个位('0’编码'0000‘、'7’编码'0111‘、'D’编码‘1101’.)。任何位序列(特别是哈希函数的输出)都可以转换为十六进制和返回。十六进制之所以流行,是因为人类的眼睛和大脑善于阅读字符,而不是阅读比特。用于计算文件上密码散列函数的命令行工具通常会为此输出十六进制字符。然而,没有任何东西在本质上将散列函数与十六进制联系在一起:计算机中适合的任何东西都是位序列,因此也是适合十六进制的;散列函数输出只是一组位序列,可以用各种方式进行编码,十六进制只是“传统”方式(尽管经常遇到Base64,尤其是在处理数据库时)。

票数 37
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/2298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档