created: 2023-05-25T06:01:32.684Z

perl の Digest::SHA1=sha1_hex は空文字でもundefでも同じものが返ってくる

perl の Digest::SHA1=sha1_hex は空文字でもundefでも同じものが返ってくる。

$ carton exec perl -MDigest::SHA1=sha1_hex -E 'say sha1_hex("")'
$ carton exec perl -MDigest::SHA1=sha1_hex -E 'say sha1_hex(undef)'

js だと文字列的なものしか渡せなくなっている。(nullは型エラー)

TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received type number (Infinity)

もちろん空文字 ("") を計算した時の結果は同じ。

> const crypto = require("crypto");
> const shasum = crypto.createHash("sha1");
> shasum.update("");
> shasum.digest("hex");
知ってるつもり 無知の科学 (ハヤカワ文庫NF)
[ad] 知ってるつもり 無知の科学 (ハヤカワ文庫NF)
スティーブン スローマン, フィリップ ファーンバック (Kindle版)