Hier wird String verschlüsselt Base64 ->Entschlüsseln von Base64-Format (Swift)
(ew0KICAiTmV3c0dyYXBoIjogWw0KICAgIHsNCiAgICAgICJEYXRlIjogIjA0LUZlYiIsDQogICAgICAiTmV3c1Njb3JlIjogNTAuMCwNCiAgICAgICJUYWJsZU5hbWUiOiAiTmV3c0dyYXBoIg0KICAgIH0sDQogICAge)
und hier ist die Erweiterung Methode, um die Zeichenfolge zu entschlüsseln
extension String
{
func fromBase64() -> String
{
let data = NSData.init(base64Encoded: self, options: []) ?? NSData()
return String(data: data as Data, encoding: String.Encoding.utf8) ?? ""
}
}
Es gibt keinen Ausgang in meiner Textansicht , aber Sie erhalten entschlüsselte Ausgabe für die gleiche Zeichenfolge auf ->https://www.base64decode.org
Aber wenn ich Teilzeichenfolge aus der verschlüsselten Zeichenfolge ->
ew0KICAiTmV3c0dyYXBoIjogWw0KICAgIHsNCiAgICAgICJEYXRlIjogIjA0LUZlYiIsDQogICAgICAiTmV3c1Njb3JlIjogNTAuMCwNCiAgICAgICJUYWJsZU5hbWUiOiAiTmV3c0dyYXBoIg0KICAgIH0sDQog
dann gibt mein Code entschlüsselte Zeichenfolge zurück. Was ist das Problem? kann man bitte
'(' und ')' sind keine gültigen Base64-Zeichen – Hamish
Es ist auch nicht notwendig, 'NSData's Initialisierer zu verwenden, da Sie gerade in' Data' konvertieren - benutzen Sie einfach 'Data's Initialisierer. Außerdem müssen Sie den Parameter 'options:' nicht angeben, wenn Sie keine Optionen übergeben möchten. Sie können auch einfach 'encoding: .utf8' in' String's Initialisierer sagen. – Hamish
Die Anzahl der Zeichen in einer gültigen Base64-Zeichenfolge muss ein Vielfaches von 4 sein, aber die erste Zeichenfolge (mit dem Entfernen von umschließenden Klammern) hat 165 Zeichen, deshalb kann NSData.init (base64Encoded: options:) 'sie nicht dekodieren. Siehe [RFC-4648] (https://tools.ietf.org/html/rfc4648). – OOPer