Tôi muốn tạo mật khẩu 256 bit cho mã hóa AES của mình. Khi tôi kiểm tra mật khẩu sau khi mã hóa, nó khác với mật khẩu ban đầu của tôi. Tôi đang làm gì sai? Hoặc có một số cơ chế bảo mật mà tôi không biết?cryptojs: Cách tạo cụm mật khẩu AES
Mã của tôi:
password=Generate_key();
var encrypted = CryptoJS.AES.encrypt("Message", password);
//Those two should be the same
document.write(password+"<br>");
document.write(encrypted.key);
function Generate_key() {
var key = "";
var hex = "abcdef";
for (i = 0; i < 64; i++) {
key += hex.charAt(Math.floor(Math.random() * 16));
//Initially this was charAt(chance.integer({min: 0, max: 15}));
}
return key;
}
Đầu ra là ví dụ:
0b05308c9a00f07044416bad7a51bacd282fc5c0c999551a4ff15c302b268b20 4df875993770411044fb35953166ee7833c32ca0741e9fec091dfa10138039e8
Đây có phải là bình thường hoặc tôi đang làm một cái gì đó sai ở đây? Cảm ơn bạn đã trợ giúp!
'Math.floor (Math.random() * 16) 'là không tương đương với' chance.integer ({min: 0, tối đa: 15}) '. Bạn nên thử 'Math.round (Math.random() * 15)' – Biduleohm