5
CryptoJS로 암호화하려고 시도한 값이있는 JSON 배열의 배열이 있습니다.이 값은 사용자가 지정한 암호를 사용하여 암호를 해독해야하는 다른 파일에서 사용하기 위해 인쇄됩니다.내 CryptoJS 암호화/암호 해독이 작동하지 않습니다.
하지만 뭔가 잘못하고 있는데 URL의 암호를 해독 할 때 "Uncaught Error : Malformed UTF-8 data"가 나타납니다.
encrypt.js :
var encrypted = CryptoJS.AES.encrypt(item[key], pass);
json[j] += encrypted.ciphertext.toString(CryptoJS.enc.Base64);
decrypt.js는 :
var decrypted = CryptoJS.AES.decrypt(item[key], pass);
html += '<a href="' + decrypted.toString(CryptoJS.enc.Utf8) + '" target="_blank" class="socialico ' + key + '">' + icons[key] + '</a>';
나는 꽤 ... 도움말을 this 예를하시기 바랍니다 다음에?
관심을 가져 주셔서 감사합니다. 나는 두 파일에서 같은'var pass = 'something'을 사용했고 모든 항목에 대해'console.log (typeof (item [key]) == 'string')'이 true를 출력했다. – Viktor
Ahh. 다른 가능한 문제를 발견했습니다. 암호화 중에 사용 된 것과 동일한 IV를 해독에 사용해야합니다. 일반적으로 IV는 암호문과 함께 직렬화되지만 IV가없는 암호문 만 명시 적으로 저장하고 있습니다. 'encrypted.ciphertext.toString (CryptoJS.enc.Base64)'를'encrypted.toString()'으로 바꾸어보십시오. –
오, 고마워요! 나는'ciphertext'와'Base64'를 제거하고 이제는 작동하는 것 같습니다. 이제는 JavaScript 만 사용하여 매우 안전한 웹 페이지를 만들었습니다! 꽤 예쁘다. – Viktor