1
비밀 문구가 같은 AES와 메시지가 매번 다른 값을 반환하는 이유는 무엇입니까? 각 PBKDF2 함수에 대해 동일한 염분을 가지고 있다고 가정 해 봅시다 (나쁘다는 것을 알고 있습니다). 매번 동일한 암호문을 입력한다고합시다.AES 함수가 다른 값을 반환하는 이유는 무엇입니까?
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=
These 응답은 것은 소금이 differrent 및 CBC 모드 문제입니다 말한다. 제 경우 소금은 일정하며 다른 모드로 전환했습니다. 출력은 매번 여전히 다릅니다.
CBC, CFB, CTR, OFB, ECB. 이러한 모든 모드가 다른 암호를 반환해야합니까? – user3081123
ECB는 의미 론적 보안을 제공하지 않으므로 ECB는 사용하지 않지만 거의 항상 잘못된 모드입니다. 평문 메시지의 블록이 반복되면 암호문의 해당 블록이 반복됩니다. (평범한 사람에 대한 정보가 보이는 사람에게 누설 됨). http://en.wikipedia.org/wiki/Block_cipher_mode_of_operation을 참조하십시오. –
감사합니다. – user3081123