비밀 문구와 메시지가 동일한 AES가 매번 다른 값을 반환하는 이유는 무엇입니까? 각 PBKDF2 함수에 대해 동일한 솔트가 있다고 가정 해 보겠습니다 (나쁘다는 것을 알고 있습니다. 단지 예일뿐입니다). 매번 동일한 암호를 입력한다고 가정 해 보겠습니다.
var salt = "5J07c/a7+2bf=15$56aQc75Ub55=60&0";
console.log(req.body.password);
console.log(salt);
var PBKDF2hash = crypto.PBKDF2(req.body.password, salt, { keySize: 256/32 });
console.log(PBKDF2hash.toString());
var AEScipher = crypto.AES.encrypt(req.body.password, PBKDF2hash);
console.log(AEScipher.toString());
이 경우 예상대로 동일한 PBKDF2hash를 받지만 AES가 다른 칩을 제공 할 때마다.
zz
5J07c/a7+2bf=15$56aQc75Ub55=60&0
3949676666ed318087a52896be98dc80b0cad99f4b662d48565283f71a2ace80
U2FsdGVkX19O1pqgL+V6Chk8NdiJQhf15N1uEfYXgxw=
zz
5J07c/a7+2bf=15$56aQc75Ub55=60&0
3949676666ed318087a52896be98dc80b0cad99f4b662d48565283f71a2ace80
U2FsdGVkX1/C7GAmLJvfFAHyOYj7LKZI5278/ZoeA3M=
이 답변은 소금이 다르고 cbc 모드가 중요하다는 것을 말합니다. 제 경우에는 소금이 일정하고 다른 모드로 전환했습니다. 출력은 매번 여전히 다릅니다.
초기화 벡터 각 암호화가 다를 수 있으므로 CBC 모드에서 사용되는 랜덤 블록이다. IV는 메시지를 암호화 할 때 사용할 특정 IV를 지정할 이유가 없다는 점을 제외하면 일종의 솔트와 같습니다 (임의 IV를 항상 사용해야 함). IV는 종종 암호화 된 메시지의 첫 번째 블록 앞에 배치됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다