它不是特定的perl问题 我正在构建一个连接到DB的perl gui / wxperl应用程序。 我希望我的应用程序受密码保护,首先用户应输入用户名和密码,然后使用该应用程序。
存储密码的最佳安全方法是什么?有人可以提供一个想法,我应该如何存储用户和密码以及如何检索它们以进行身份验证? 如果可能,有人可以提供一些perl代码如何做到这一点?
答案 0 :(得分:9)
你绝对不想以纯文本格式保存密码,你应该看一下使用sha256。您可以使用Perl mod Digest :: SHA(请参阅文档的CPAN)。
use Digest::SHA qw(sha256);
my $digest = sha256($input_password);
my $saved_digest_password = get_saved_password_for_user($input_user);
if ($digest eq $saved_digest_password){
# they have the correct password
}
这只是伪代码,但它应该有助于您入门。您可以根据需要定义“get_saved_password_for_user”,无论是存储在某个数据库中还是存储在文件系统中或其他位置。只要确保你没有在任何地方存储或记录$ input_password。您唯一需要存储的是$ digest密码。
希望有所帮助!