给出的是虚拟服务器上的 PHP 和 MySQL 系统。
我想在那里保存密码。你经常听到人们谈论他们的系统被黑客入侵,信用卡信息被盗。
根据目前的知识,您应该在服务器上存储密码的什么位置以及如何保护它们?
答案1
如果你要存储用户密码,我建议使用盐。
本质上你有两张桌子
tblUser(userID, userPassword)
tblUserKey(userID, userKey)
将散列的用户密码tblUser
和散列的密钥存储在tblUserKey
表中。
使用各个用户的散列密钥解密用户密码。
这使得每个密码都完全独特,并且如果黑客能够访问您的表格,他们将更难以解密。
答案2
您只需要了解一些基本细节:
- 黑客无法访问数据库的列名,因此切勿将密码列命名为 ,
password
或pass
使用无人能猜到的名称 - 要在数据库中存储一些重要/敏感的数据(如密码或信用卡号),您应该使用单向加密函数,如
md5()
或sha1()
,当用户将其密码存储在数据库中时,您对其进行哈希处理,然后将加密数据存储在数据库中,当用户想要登录时,您再次进行哈希处理,然后与您之前存储的哈希值进行比较,这样,即使有人入侵您的数据库,他也只会获得一些加密数据,并且无法解密,因为这是单向加密。 - 不要忘记在你的 SQL 服务器上设置登录名、密码和访问权限,默认情况下,
root:''
如果你有一个像 PhPmyadmin 这样的界面,任何人都可以连接它并访问你的数据库数据 - 如今,散列密码并不安全,因此您可能需要对散列数据进行“加盐”。要对散列进行加盐,只需在散列数据前添加一些字符,例如,
XYZ
即使您的散列字符串被破解,黑客也无法找到XYZ
您在其前面添加的内容