は⚠それ以上のMD5またはSHA-1を使用しないでください。 articles弱点についての記事を参照してください。
代わりにSHA-2を使用すると、Crypt::SaltedHashは素敵な抽象化を提供します。推奨PerlバインディングはDigest::SHAで、XSを使用しています。
あなたは高価な話をしています。あなたはまだコードをプロファイリングしましたか?コードはまだ書かれていない?それで道はtoo early to think about optimisationです。セキュリティは最初の懸念事項でなければなりません。
編集:コード例@marcogの回答に
use Crypt::SaltedHash;
my $normalised_string_representation_of_internet_address = '::1'; # or perhaps '10.10.10.10'
# when you first get an address, make a hash and store it
my $csh = Crypt::SaltedHash->new(algorithm => 'SHA-512', salt_len => 32);
$csh->add($normalised_string_representation_of_internet_address);
my $salted = $csh->generate;
# later retrieve the hash and see whether it matches
my $valid = Crypt::SaltedHash->validate($salted, $normalised_string_representation_of_internet_address, 32);
私はdownvoteに値する何も見なかったので、私はキャンセルするようにupvoted。 –
私はそれが仕事で抗MD5軍だと思います。この特定の目的のために、私はMD5が大丈夫だと思っています(私のdaximの答えを見てください)が、一般的には避けるべきです。 – ysth