2016-07-27 7 views
-3

プロジェクトでは、C#でSHA256暗号化文字列を生成する必要があります。 要件はKey:todaysDateおよびValue: "exampleString"です。C#でSHA256暗号化文字列を生成するには?

どのように私はCでそれを実現することができますか?私の知る限り、SHA256クラスにはC#のキーのプロパティは含まれていません。

+0

は宿題のような音...あなたはSHA256アルゴリズムを研究し、公開鍵(SHA256)と秘密鍵について学ぶ必要がある – carefulnow1

+0

@odixonはどこにある(おそらくUUID、。) 「公開鍵」SHA256は暗号ハッシュ関数である。 – zaph

+0

@danielmunich多分、256ビット鍵を持つAESを意味しますが、SHA256は暗号化プリミティブではありません。 – zaph

答えて

3

は、暗号化アルゴリズムではありません。hash algorithmです。言い換えると、一方向関数です。その仕事は、任意の長さの入力を受け取り、同じ入力に対して常に同じ低い衝突で固定長の出力を生成することです。したがって、ハッシングの性質は暗号化の性質と大きく異なるため、入力としてキーを受け取らない。

キーで何かを暗号化し、後で同じキーを使用して暗号化したい場合は、AES(たとえば、the AesManaged classを使用)のような対称暗号を見てください。

1

あなたは自分の宿題をする必要があります。もしあなたがそれをしたら、あなたは何も学ばない。

また、前述のテオドロスのように、SHA256は暗号化ではなくハッシュです。ハッシュは、データを検証または比較するために使用される暗号チェックサムです。暗号化の要件である元の平文に戻すことはできません。

どのように私はそれをC#で実現できますか?私の知る限り、SHA256クラスにはC#のキーのプロパティは含まれていません。

あなたまたはあなたに割り当てを与えた人は、何が尋ねられているのか理解できません。

SHA256にはキーまたは値がありません。データは入っていて、ハッシュが出ています。どのくらいのデータを処理しても、値は変わりませんが、ハッシュのサイズは変わりません。ハッシュは、特定のデータセットのフィンガープリントと考えることができます。

-1

たぶん、このような何か:

public static string sha256_hash(string sValue) { 
    StringBuilder oResHash = new StringBuilder(); 

    using (SHA256 oHash = SHA256Managed.Create()) { 
    Encoding oEnc = Encoding.UTF8; 
    byte[] baResult = oHash.ComputeHash(oEnc.GetBytes(sValue)); 

    foreach (byte b in baResult) 
     oResHash.Append(b.ToString("x2")); 
    } 

    return oResHash.ToString(); 
} 
関連する問題