... package UseModWiki; use strict; ### 다음 두 줄 추가 use vars qw($HashKey); $HashKey = "salt"; # 2-character string ###
sub UserIsAdmin { ... foreach (split(/\s+/, $AdminPass)) { next if ($_ eq ""); ### 다음 라인 교체 # return 1 if ($userPassword eq $_); return 1 if (crypt($_, $userPassword) eq $userPassword); ### } return 0; }
sub UserIsEditor { ... foreach (split(/\s+/, $EditPass)) { next if ($_ eq ""); ### 다음 라인 교체 # return 1 if ($userPassword eq $_); return 1 if (crypt($_, $userPassword) eq $userPassword); ### } return 0; }
sub DoUpdatePrefs { my ($username, $password); ### 다음 라인 추가 my $hashpass = ""; ### ... $password = &GetParam("p_password", ""); ### 다음 라인 추가 $hashpass = crypt($password, $HashKey); ### if ($password eq "") { print T('Password removed.'), '<br>'; undef $UserData{'password'}; } elsif ($password ne "*") { print T('Password changed.'), '<br>'; ### 다음 라인 교체 # $UserData{'password'} = $password; $UserData{'password'} = $hashpass; ### } if ($AdminPass ne "") { $password = &GetParam("p_adminpw", ""); ### 다음 라인 추가 $hashpass = crypt($password, $HashKey); ### if ($password eq "") { print T('Administrator password removed.'), '<br>'; undef $UserData{'adminpw'}; } elsif ($password ne "*") { print T('Administrator password changed.'), '<br>'; ### 다음 라인 교체 # $UserData{'adminpw'} = $password; $UserData{'adminpw'} = $hashpass; ### if (&UserIsAdmin()) { print T('User has administrative abilities.'), '<br>'; ... }
sub DoLogin { ... &LoadUserData(); ### 다음 라인 교체 # if (defined($UserData{'password'}) && # ($UserData{'password'} eq $password)) { if (defined($UserData{'password'}) && (crypt($password, $UserData{'password'}) eq $UserData{'password'})) { ### $SetCookie{'id'} = $uid; ...