使用hash检查平面文件中的用户登录信息



我有一个正在处理的用户登录,我正试图使用哈希密钥分配来检查一个平面文件,看看输入的密码是否与存储的密码匹配。然而,我不太清楚自己在做什么,所以一些指导会很棒。我提供的代码工作正常,但其中有些内容应该更新为更现代的Perl编程风格,我只是不知道如何做到这一点。http://codepad.org/YYGmdknl

你是说代码不起作用吗?它确实很脏,但看起来应该能用。

修复:

use strict;    # Always use this!
use warnings;  # Always use this!
my $user     = ...;
my $password = ...;
my %passwords;
open(my $fh, '<', 'password.txt') or die $!;
while (<$fh>) {
   chomp;
   my ($user, $password) = split /:/;
   $passwords{$user} = $password;
}
close($fh);
if (exists($passwords{$user}) && $password eq $passwords{$user}) {
   print p("Hello"." ".$user);
} else {
   print p("Login failed.");
}

但为什么是杂碎?

use strict;
use warnings;
my $user     = ...;
my $password = ...;
my $logged_in;
open(my $fh, '<', 'password.txt') or die $!;
while (<$fh>) {
   chomp;
   my ($file_user, $file_password) = split /:/;
   if ($user eq $file_user) {
      if ($password eq $file_password) {
         $logged_in = 1;
      }
      last;
   }
}
close($fh);
if ($logged_in) {
   print p("Hello"." ".$user);
} else {
   print p("Login failed.");
}

最新更新