kkapsner
Super Moderator
Natürlich ist das ein valider UCS String. UCS sagt ja auch nur, dass du 2 Bytes für jedes Zeichen hast. Da gibt es sonst keine Beschränkungen.aber auch kein valider ucs string
Genau - das ist UCS.daß jeder müll im string vorkommen kann
Warum sollte ich das tun wollen? Das ist überhaupt gar nicht die Fragestellung. Die crypto-Sachen im Browser erwarten einen ArrayBuffer als Input und keinen String (https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/encrypt). Deswegen muss man da vorher den String in einen Uint8Array umwandeln. Wenn dann beim Entschlüsseln keine validen UTF-8 Zeichen rauskommen, ist entweder der Schlüssel nicht korrekt oder es wurde was falsch übertragen.in einen string wandelt und wieder zurück in ein uint8 array
Für mich sieht also der Ablauf so aus: Klartext (String) -> Klartext (UTF-8 Uint8Array) -> Verschlüsselt (Uint8Array) -> Verschlüsselt (base64 String) -> Server oder was auch immer
Die Entschlüsselung ist dann in die andere Richtung. Für den Schritt Uint8Array zu base84 bietet der Browser meines Wissens nach nichts an, aber das ist ja auch kein Hexenwerk. Der Rest ist mit den erwähntetn Bordmitteln machbar.