我read知道有可以加密的数据类型,所以密码在您的数据库中是安全的.
我目前使用varchar
来存储密码.我的 idea 是,我应该以某种方式将SHA-512函数应用于密码,并将数据放在某个位置,以便删除纯文本密码.
然而,Perl中的数据类型告诉我,在PostgreSQL中有一种比varchar更好的方法.
What is the datatype for a password in PostgreSQL?个
我read知道有可以加密的数据类型,所以密码在您的数据库中是安全的.
我目前使用varchar
来存储密码.我的 idea 是,我应该以某种方式将SHA-512函数应用于密码,并将数据放在某个位置,以便删除纯文本密码.
然而,Perl中的数据类型告诉我,在PostgreSQL中有一种比varchar更好的方法.
What is the datatype for a password in PostgreSQL?个
杰夫有一篇很好的文章,题目是You're Probably Storing Passwords Incorrectly.本文讨论在数据库中存储密码的各种方式,以及可能遇到的一些常见缺陷.特别是,它讨论了使用散列算法、彩虹表和使用"SALT"来降低密码文件被泄露的风险.
使用varchar
数据类型非常适合存储经过适当哈希处理的密码.例如,以下是我在生产数据库中的部分实际帐户记录:
=> select account_id, email, salt, passhash from account where email = 'greg@hewgill.com'; account_id | email | salt | passhash ------------+------------------+------------------+------------------------------------------ 1 | greg@hewgill.com | GFR9uT4N4Tzl3vnK | 2c2bf00079a6d49a8f7fb17cefb52fdb41a4b043 (1 row)
在本例中,passhash
是salt的SHA-1的十六进制表示形式,与我的密码连接在一起.