散列密码与加密密码的区别

散列密码与加密密码的区别

目前最高层投票给这个问题各国:

另一个不是安全问题的问题,虽然与安全有关,但却是彻底和可耻的失败。解决哈希密码和加密密码之间的区别..最常见的是在代码中,程序员试图提供不安全的“提醒我密码”功能。

这到底有什么区别?我一直觉得哈希是一种加密形式。海报所指的不安全功能是什么?


牧羊人nacy
浏览 1029回答 3
3回答

慕勒3428872

散列是一个单向函数(嗯,映射)。这是不可逆转的,您应用了安全哈希算法,并且无法获得原始字符串。您能做的最多就是生成所谓的“冲突”,即找到提供相同哈希的不同字符串。密码安全散列算法是为了防止冲突的发生而设计的。可以通过使用彩虹台,您可以通过应用食盐在存储哈希之前。加密是一种适当的(双向)功能。这是可逆的,你可以解密损坏的字符串,以获得原始字符串,如果你有密钥。它所指的不安全功能是,如果您加密密码,您的应用程序将密钥存储在某个地方,访问数据库(和/或代码)的攻击者可以通过获取密钥和加密文本获得原始密码,而使用哈希则是不可能的。人们通常说,如果破解者拥有您的数据库或代码,他不需要密码,因此差别是没有意义的。这是幼稚的,因为你仍然有责任保护你的用户的密码,主要是因为他们中的大多数确实一遍又一遍地使用相同的密码,通过泄露他们的密码使他们面临更大的风险。

狐的传说

散列是一个单向函数,意思是一旦散列密码,它就是。非常很难从散列中获得原始密码。加密是一种双向功能,从加密文本中获取原始文本要容易得多。使用字典攻击很容易击败普通散列,攻击者只需对字典中的每个单词(或在一定长度内的字符组合)进行预散列,然后使用这个新字典查找散列密码。对于存储的每个散列密码,使用唯一的随机盐将使攻击者更难以使用此方法。他们基本上需要为您使用的每个盐值创建一个新的唯一字典,从而极大地减缓它们的攻击速度。使用加密算法存储密码是不安全的,因为如果用户或管理员更容易从加密文本中获取原始密码,攻击者也更容易这样做。

青春有我

提取自加密与哈希密码-哪个更好?加密好吗?纯文本密码可以使用对称加密算法(如DES、AES或任何其他算法)加密,并存储在数据库中。在认证时(用户名和密码确认身份),应用程序将解密存储在数据库中的加密密码,并与用户提供的密码进行比较。在这种类型的密码处理方法中,即使有人访问了数据库表,密码也不会简单地被重用。然而,这种方法也有一个坏消息。如果有人以某种方式获得了加密算法以及您的应用程序使用的密钥,他/她将能够通过解密查看存储在数据库中的所有用户密码。“这是我得到的最好的选择”,一个软件开发人员可能会尖叫,但是有更好的方法吗?密码散列函数(单向)是的,也许你没注意到这一点。你注意到没有解密和比较的要求了吗?如果有单向转换方法,密码可以转换成一些转换词,但反向操作(从转换字生成密码)是不可能的。现在,即使有人可以访问数据库,也不可能使用转换后的单词复制或提取密码。在这种方法中,几乎没有人知道您的用户的最高机密密码;这将保护在多个应用程序中使用相同密码的用户。这种方法可以使用什么算法?
打开App,查看更多内容
随时随地看视频慕课网APP