網路管理語言 Perl 入門與實作: | ||
---|---|---|
<<< Previous | 4. Perl 的資料型態 | Next >>> |
如何把某一字串做編碼加密呢?
這裡簡單介紹傳統的加密函式 crypt,用法如下:
語法: crypt 欲加密的字串,salt; 注意:crypt 只會取用 salt 字串中前二個字元,超過的予以忽略。 例: #! /usr/bin/perl print "請輸入您要加密的字串?"; chomp($str=<STDIN>); print "請輸入任意二個字元?"; chomp($salt=<STDIN>); $pwd=crypt $str, $salt; print "$str 的加密結果:$pwd\n\n"; # 可能輸出結果: 請輸入您要加密的字串?larrywall 請輸入任意二個字元?9m larrywall 的加密結果:9mpSIssRh4Lbs |
crypt 可以運用到 /etc/passwd (非 shadow 型) 上,假定 pass 是 /etc/passwd 上已加密過的密碼字串,則以下例子可以比對:使用者輸入的密碼,與 /etc/passwd 中他自己的密碼,是否相符?
chomp($keyin_pwd=<STDIN>); # $pass 代表由 /etc/passwd 取得的加密密碼 if ((crypt $keyin_pwd, $pass) eq $pass) { print "密碼正確!\n"; } |
Perl 的 crypt,採用 DES(Data Encryption Standard) 修改過的版本,它是一種單向加密。換言之,您無法由加密後的密文,來反推其原來的明文為何?不過,這並不表示它不能被破解。(常見的攻擊方法之一:字典攻擊法。)
<<< Previous | Home | Next >>> |
4.1.19 時間的處理 | Up | 4.2 陣列 |