2014年2月15日土曜日

ヘッダファイルだけでC++から使えるSHA256のハッシュ計算ライブラリ『PicoSHA2』

を作りました。

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を読んでください。

3 件のコメント:

  1. 236行目
    temp[56+i] = detail::mask_8bit(static_cast(bit_length >> (56-i*8)));
    size_tが32bitでIA-32な感じだと32以上のビットシフトは
    下位5bitで行われるという罠があるのでウマくないですよぅ

    返信削除
  2. コメントありがとうございます。大変嬉しいです。返事が遅くなってすみません。
    件のコードが問題であることを確認しましたが、今は他にやることがあってなかなか修正できないでいます。
    とりあえず今はIA-32では正しく動かないことをREADMEに書いておきます。
    暇ができたら修正しようと思います。
    もしよろしければ、図々しいお願いですが、プルリクエストを投げていただけたら大変嬉しいです。

    返信削除
  3. 取り急ぎ修正しました。情報ありがとうございました。大変助かりました。

    返信削除