gpt4 book ai didi

mysql - 保存不同数据的密码(phpMyAdmin 数据库)

转载 作者:行者123 更新时间:2023-11-29 11:19:20 36 4
gpt4 key购买 nike

密码 varchar(120)

上面是我设置的密码的列名称数据类型。我正在使用 phpMyAdmin 数据库并创建了一个用于测试目的的用户,其中 userTest 作为用户名,user123 作为密码。当我检查数据库时,它没有保存 user123 作为密码,而是保存了类似 0dcbd056919392554f346a10cc114d27 的内容。与SQL Server数据库相比,SQL Server数据库将保存用户通过注册输入的密码的准确数据。

即便如此,我仍然可以使用user123作为用户名userTest的密码登录。如果我使用0dcbd056919392554f346a10cc114d27作为密码,我无法登录系统。我刚刚注意到这一点,并开始想知道,作为管理员,如果我通过数据库,我如何才能知道用户密码,就像他们用来注册的密码一样?

最佳答案

你到底为什么需要知道用户的密码?这真是一个糟糕的主意。我明确不想知道我的用户的密码,也不想有办法解密它们。有很多原因可以解释为什么这是一个坏主意,其中之一是,如果用户重复使用密码并且您的数据库遭到泄露,那么用户的明文密码也已被泄露。

更常见的是对密码进行哈希处理;获取用户的密码,结合加密盐,并将其作为哈希函数的输入(我相信 bcrypt 现在最常见,但您的要求可能会有所不同)。该函数返回一些无意义的字符串,例如 $2a$06$XKJbhsfB4q53MovNJRgEuOkQKpnOIpjfQ7P8qMUWa63qGeHnPlyMu,然后将其存储在数据库中。当用户尝试登录时,您重复哈希过程并将结果与​​数据库中存储的值进行比较。

如果您确实有存储明文密码的业务需要,那么我强烈建议您以简单的语言警告用户,他们的数据库将通过不安全的方式存储,并绝对使用专门为您设计的密码应用程序。

再次,我强烈建议不要以纯文本形式存储密码,并确保您拥有加密安全的哈希值。

但无论如何,为了直接回答您的问题,您不会在此处存储纯文本值。当您插入用户密码时,我不知道您在做什么,但显然您正在 varchar 字段上执行某些功能。可能您已经从 phpMyAdmin 插入页面的下拉列表中选择了其中一项功能(参见下面的屏幕截图);这会在您插入数据时将所选的 MySQL 函数应用于数据。 phpMyAdmin 可能没有其他充分的理由像这样破坏您的数据,所以这似乎是最有可能的。

phpMyAdmin function dropdown

关于mysql - 保存不同数据的密码(phpMyAdmin 数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39199892/

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