2012-12-04 71 views
1

我正在使用SJCL library來加密/解密郵件。我的問題是,我不知道這是用來AES或SHA256是sjcl.encrypt使用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或者是其他東西 ?

回答

5

pbkdf2用於密鑰生成的是使用HMACSHA256。但是sjcl爲AES-CCM的默認加密密鑰大小僅爲128位。如果你想要AES-CCM-256,我認爲你需要做以下事情,你也不必直接撥打pbkdf2

var encMessage =sjcl.encrypt(somePassword,message,{count:2048,salt:salt,ks:256}); 
1

根據對the source的粗略檢查,我建議它在CCM mode中使用AES。

SJCL homepage解釋了使用的加密技術,雖然承認每個功能文檔根本沒有解釋它。