Z
zirzofer
Guest
GELÖST
Ich möchte gerne ergebnise aus der
hier stosse ich aber auf ein problem, das ich mir nicht erklaeren kann:
PS: gleich selbst der hinweis: das ist ein crosspost von stackoverflow da ich dort keine loesung erhalten habe.
Ich möchte gerne ergebnise aus der
window.crypto.subtle.encrypt
funktion an meinen server senden. da diese allerdings einen arraybuffer ausgibt, moechte ich das erst zu einem string konvertieren um es anschliessend zb in einer datenbank speichern zu koennen. hier stosse ich aber auf ein problem, das ich mir nicht erklaeren kann:
Code:
console.log(encrypted); //ArrayBuffer { byteLength: 28 } (sample output from encryption function)
var encryptedAsUint8 = new Uint8Array(encrypted);
console.log(encryptedAsUint8); //Uint8Array [ 25, 235, 161, 121, 221, 61, 132, 15, 161, 17...
var decoded = new TextDecoder("utf-8").decode(encrypted);
console.log(decoded); //�y�=��ͨ˫~���@��UcQ�
var decoded64 = btoa(encodeURIComponent(decoded));
console.log(decoded64); //JTE5JUVGJUJGJUJEeSVFRiVCRiVCRCUzRCVFRiVCRiVCRCUwRiVFRiVCRiVCRCUxMSVDRCVBOCVDQiVBQn4lRUYlQkYlQkQlRUYlQkYlQkQlMDIlN0YlRUYlQkYlQkQlNDAlRUYlQkYlQkQlRUYlQkYlQkRVY1ElRUYlQkYlQkQ=
var encodedAgain = decodeURIComponent(atob(decoded64));
console.log(encodedAgain); //�y�=��ͨ˫~���@��UcQ�
console.log(decoded === encodedAgain); //true
var backToUint8 = new Uint8Array(new TextEncoder("utf-8").encode(encodedAgain));
console.log(backToUint8 === encrypted); //false ???????
console.log(backToUint8); //Uint8Array [ 25, 239, 191, 189, 121, 239, 191, 189, 61, 239,... ---> warum enthält das aus dem identischen String erzeugte Array nun unterschiedlichen Inhalt??
PS: gleich selbst der hinweis: das ist ein crosspost von stackoverflow da ich dort keine loesung erhalten habe.
Zuletzt bearbeitet: