2011-07-21 14 views
3

私はsha256ジェネレータクラスに単純な文字列が必要です。私はopenSSLやCripto ++のような大きなライブラリを構築したくないのです。私が望むのは、文字列をsha256に変換することだけです。どのようにそのようなクラスを作成するか、それを取得する場所?C++ブーストで簡単なsha256発電機を作る方法?

+4

関連するサイドチャネル攻撃はどれですか。 – CodesInChaos

+0

「ブースト」はなぜ関連していますか?あなたはアルゴリズムを見たことがありますか? –

+3

通常、複雑な暗号を自分で実装しようとするのは悪い考えです。 – kcbanner

答えて

2

他の人は言ったように、私はSHA256の下でのハッシングは、より大きなコーディングプロジェクトのサブセットとして簡単に実装することは簡単ではないという印象を受けました。 wikipedia page for SHA-2を見れば、かなり激しい数学に気付くでしょう。実際の暗号化の要約(数学理論自体)をご希望の場合は、hereがあります。セキュリティに重点を置かないプログラマーのほうが大好きな人は、他の誰かが試して試した実装を使いたいと思うかもしれません。あなたは良いいくつかhereを見つけることができます。これが助けられたら教えてください。申し訳ありませんが、私はあなたの質問にそのような性質のコードなどで答えることができませんでした。

1

あなたはこれが欲しいですか?

static void 
sha2_round(const unsigned char *data, sph_u32 r[8]) 
{ 
    int i; 
    sph_u32 a, b, c, d, e, f, g, h; 
    sph_u32 w[64]; 

    for (i = 0; i < 16; i ++) 
     w[i] = sph_dec32be_aligned(data + (4 * i)); 
    for (i = 16; i < 64; i ++) { 
     w[i] = SPH_T32(SSG2_1(w[i - 2]) + w[i - 7] 
      + SSG2_0(w[i - 15]) + w[i - 16]); 

http://www.saphir2.com/sphlib/ に行くと、それをダウンロードしてください。それはGPLの下にあります。 sha2.cを参照してください。

は、多くのドキュメントがありません。彼らはすでに何をしているのかを知っている人々のために準備されています。

0

GNU coreutilsは非常に単純なソースコードを持っています。 はcoreutilsをダウンロードするだけで、ビルドできるテストスイートもあり、ソースコードにはコメントとドキュメントがいっぱいです。

2

Cのソースコードは、RFC 6234のセクション8に直接あります。 errataも確認してください。

+0

@ Jerry Coffin:同意し、修正しました –

関連する問題