Perl PHP
------------------------------- ------------------------------
md5($string) md5($string, 1)
md5_hex($string) md5($string, 0)
md5_base64($string) base64_encode(md5($string, 1))
encode_base64(md5_hex($string)) base64_encode(md5($string, 0)) WASTEFUL
PHP'smd5
产生哈希的十六进制,类似于 D::MD5's md5_hex
。
$ echo '<? echo md5("abc|def|ghi"), "\n"; ?>' | php
32c472fa42271f2aa4a851fd2c574d87
$ perl -E'
use Digest::MD5 qw( md5_hex );
say md5_hex("abc|def|ghi");'
32c472fa42271f2aa4a851fd2c574d87
base64 传达相同信息的字符更少。
$ echo '<? echo base64_encode(md5("abc|def|ghi", 1)), "\n"; ?>' | php
MsRy+kInHyqkqFH9LFdNhw==
$ perl -E'
use Digest::MD5 qw( md5_base64 );
say md5_base64("abc|def|ghi");'
MsRy+kInHyqkqFH9LFdNhw
$ perl -E'
use Digest::MD5 qw( md5 );
use MIME::Base64 qw( encode_base64 );
say encode_base64(md5("abc|def|ghi"));'
MsRy+kInHyqkqFH9LFdNhw==
(删除尾随==
不会改变值。)
您目前在 PHP 中所做的事情非常浪费。它比所需的要长得多,并且需要额外的 CPU 时间来生成它。
$ echo '<? echo base64_encode(md5("abc|def|ghi")), "\n"; ?>' | php
MzJjNDcyZmE0MjI3MWYyYWE0YTg1MWZkMmM1NzRkODc=
$ perl -E'
use Digest::MD5 qw( md5_hex );
use MIME::Base64 qw( encode_base64 );
say encode_base64(md5_hex("abc|def|ghi"), "");'
MzJjNDcyZmE0MjI3MWYyYWE0YTg1MWZkMmM1NzRkODc=