gpt4 book ai didi

database - 为什么将密码哈希截断为 14 个字符?

转载 作者:搜寻专家 更新时间:2023-10-30 20:31:45 26 4
gpt4 key购买 nike

我正在编写一些代码,在某些时候它正在准备一个密码以存储在数据库中。在粗略的伪代码中,它执行以下操作:

encrypted_password = truncate(hash(password), 14)

即计算密码的哈希值,然后将哈希值截断为 14 个字符。


有谁知道为什么应用程序会以这种方式截断散列?这是经过深思熟虑的,所以我怀疑它是为了使散列与我不知道的一些相当标准的密码存储类型兼容。

(请忽略这不是存储密码、不加盐等的好方法。)

最佳答案

我能想到的唯一原因是保持与某些遗留系统的兼容性。事实上,这是我能想到的在任何情况下做出有意识的牺牲安全性决定的唯一原因。

例如,考虑一个网络,该网络具有异常古老的 UNIX 机器,这些机器只能使用经典的 crypt() 函数使用八个字符的密码。为了让他们对其他系统执行身份验证,或者让其他系统对那些遗留的 UNIX 系统执行身份验证,每个人都必须使用相同的方法来操作身份验证数据。

事实上,通过网络传输密码(散列、散列+加盐或其他方式)的唯一原因是为了遵守遗留系统或具有我所谓的“遗留要求”的系统。对于安全性相对较弱的系统也是如此。

关于database - 为什么将密码哈希截断为 14 个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4465770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com