2012-12-04 3 views
1

메시지를 암호화/해독하기 위해 SJCL library을 사용하고 있습니다. 내가 가진 문제는 내가 AES 사용되는 모르거나 없다는 것입니다 여기에 은 AES 또는 SHA256을 사용하는 sjcl.encrypt입니다.

내 코드입니다 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을 사용합니다. 그러나 AES-CCM에 대한 sjcl의 기본 암호화 키 크기는 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은 기능별 설명서에 전혀 설명되어 있지 않지만 사용 된 암호화 기술에 대해 설명합니다.