を作りました。
https://github.com/okdshin/PicoSHA2
例えば次のようなソースコード
std::string src_str = "The quick brown fox jumps over the lazy dog"; std::string hash_hex_str = picosha2::hash256_hex_string(src_str); std::cout << hash_hex_str << std::endl;
で、以下が出力されます。
d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
より詳しくはREADMEを読んでください。
236行目temp[56+i] = detail::mask_8bit(static_cast(bit_length >> (56-i*8)));size_tが32bitでIA-32な感じだと32以上のビットシフトは下位5bitで行われるという罠があるのでウマくないですよぅ
コメントありがとうございます。大変嬉しいです。返事が遅くなってすみません。件のコードが問題であることを確認しましたが、今は他にやることがあってなかなか修正できないでいます。とりあえず今はIA-32では正しく動かないことをREADMEに書いておきます。暇ができたら修正しようと思います。もしよろしければ、図々しいお願いですが、プルリクエストを投げていただけたら大変嬉しいです。
取り急ぎ修正しました。情報ありがとうございました。大変助かりました。
236行目
返信削除temp[56+i] = detail::mask_8bit(static_cast(bit_length >> (56-i*8)));
size_tが32bitでIA-32な感じだと32以上のビットシフトは
下位5bitで行われるという罠があるのでウマくないですよぅ
コメントありがとうございます。大変嬉しいです。返事が遅くなってすみません。
返信削除件のコードが問題であることを確認しましたが、今は他にやることがあってなかなか修正できないでいます。
とりあえず今はIA-32では正しく動かないことをREADMEに書いておきます。
暇ができたら修正しようと思います。
もしよろしければ、図々しいお願いですが、プルリクエストを投げていただけたら大変嬉しいです。
取り急ぎ修正しました。情報ありがとうございました。大変助かりました。
返信削除