1

メッセージの暗号化/復号化にSJCL ライブラリを使用しています。私が持っている質問は、AES と SHA256 のどちらが使用されているかわからないということです

これが私のコードです:

var h = sjcl.codec.hex, count = 2048 ;
salt = h.fromBits(sjcl.random.randomWords('10','0'));
var key = h.fromBits( sjcl.misc.pbkdf2(somePassword, h.toBits(salt), count) ) ;

次に、次のように暗号化/復号化できます

var encMessage = sjcl.encrypt(key, message) ;
sjcl.decrypt(key, encMessage) ;

AES か SHA256 か何か?

4

3 に答える 3

6

SHA256 と AES は 2 つの異なるタイプのアルゴリズムです。

SHA256 は暗号化ハッシュ関数です: http://en.wikipedia.org/wiki/SHA-2

AES は暗号化アルゴリズムです: http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

したがって、暗号化を使用する場合、実際にはAESを使用しています。

于 2012-12-04T15:59:03.710 に答える
5

pbkdf2キー生成用はで使用HMACしていSHA256ます。ただし、sjclforのデフォルトの暗号化キーサイズはビットAES-CCMのみです。128必要AES-CCM-256に応じて、次のことを行う必要があると思いますpbkdf2。直接電話する必要もありません。

var encMessage =sjcl.encrypt(somePassword,message,{count:2048,salt:salt,ks:256});
于 2012-12-04T16:17:11.230 に答える
1

ソースの大まかな検査に基づいて、CCM モードで AES を使用していることをお勧めします。

SJCLのホームページには、使用されている暗号化技術が説明されていますが、関数ごとのドキュメントではまったく説明されていません。

于 2012-12-04T15:59:30.837 に答える