今日、 sha1のバイナリ パラメータを調べていたところ、結果のバイナリ文字列を base 62 表現に変換できませんでした。
$str = 'mystring';
echo gmp_strval(gmp_init(sha1($str), 16), 62), PHP_EOL; // Works
echo gmp_strval(gmp_init(sha1($str, true), 2), 62), PHP_EOL; // Fails
// Same with base_convert()...
echo base_convert(sha1($str), 16, 32), PHP_EOL; // Works
echo base_convert(sha1($str, true), 2, 32), PHP_EOL; // Fails
結果:
MNun4i9wmY2M2sBvnq5Z8jDi7nk
0
jjhukjbflgg000000000000000000000
0
gmp_init()およびbase_convert()関数が整数または文字列を必要とし、これはおそらく単なるバイナリ データであるためかどうか疑問に思っています。