首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >web开发中的MD5算法

web开发中的MD5算法
EN

Security用户
提问于 2013-12-03 12:39:51
回答 1查看 742关注 0票数 0

我把我大学网站的密码存储在我们自己的服务器上。我使用MD5加密器存储密码。但我所怀疑的是,既然解密器在那里,我也可以解密密码并使用它们。我是如何保护这些密码的。

EN

回答 1

Security用户

发布于 2013-12-03 13:43:25

MD5不是加密算法。这是一种散列算法。散列算法是单向的.没有解密器。

散列用于生成文本字符串的指纹。反向工程从哈希输入应该是不可能的。当哈希函数是加密安全的时,没有比尝试所有可能的输入更有效的方法了,直到您找到一个具有相同哈希的输入。

您如何在密码系统中应用此方法?

当用户在注册过程中告诉您他们的密码时,您不会保存它。生成密码的哈希,将哈希保存在数据库中,然后忘记曾见过明文密码。当用户尝试登录时,他们会给你一个密码。生成该密码的哈希,当它与数据库中的哈希匹配时,将它们输入。

但是请注意,MD5不再是密码加密的好选择。

  1. MD5是一种快速算法。乍一看,这似乎是一个优势,因为它使身份验证更快。但是,它也使任何能够访问哈希的人都更容易尝试密码,直到他们找到一个与之匹配的密码。
  2. MD5的安全性存在争议。在该算法中发现了许多缺陷,使得在某些情况下逆向工程MD5哈希的输入成为可能。

出于这些原因,您应该在可能的情况下使用另一种算法。密码加密的一个很好的选择是bcrypt,因为它是专门为此目的而设计的。当您的开发框架没有现成的实现时,可以将沙二视为更容易获得实现的另一种选择。它并不比MD5慢得多,只要有足够的计算能力,它就更容易破解,但它没有像MD5这样的致命漏洞。对于低安全系统来说还是足够的。

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

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

复制
相关文章

相似问题

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