存储数据库密码

问题描述 投票:0回答:1

如果出于安全原因,我将密码以哈希形式保存在应用程序的配置文件或代码中,那么如果应用程序不接受使用哈希的身份验证,它将如何连接到数据库? 如果密码保存为哈希值而不是明文,身份验证的过程是什么?

谢谢。

尝试在互联网上搜索,但没有找到任何答案。

database security database-design password-hash secure-coding
1个回答
0
投票

密码哈希

密码哈希由直接验证用户身份的应用程序使用。他们对来自用户的输入进行哈希处理,并将其与文件中的哈希版本进行比较。这样,他们就可以查看用户是否知道密码,而实际上不必知道他们自己的密码。

优点是,如果黑客获得了应用程序的完全访问权限及其所有秘密,则用户的密码将不会在其中。相反,黑客将获得哈希值列表,这些值或多或少是无用的。

数据库凭证

这是一种不同的情况,因为数据库正在进行身份验证,而您只是存储您的凭据,以便稍后可以将它们(未散列)提供给数据库。

以明文形式存储您的凭据是有风险的。

所以mysql数据库有一个替代方案: https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-connection-using-files.html

...大多数其他数据库也是如此。

如果这样的事情不可行,您至少应该将配置文件的权限设置得非常窄,以便只有您和数据库可以访问您的凭据。

© www.soinside.com 2019 - 2024. All rights reserved.