Hey Leute,
ich habe nicht unbedingt ein Problem, sondern eher eine Unverständlichkeit.
Und zwar verschlüsselt ich mit folgendem einen eingegebenen Text mittels AES128-Bit:
Alles anzeigen
Nun lautet der String des verschlüsselten Textes:
Nun übermittel ich den verschlüsselten Text an ein .php File, welches diesen Text in die Datenbank einträgt:
Das Password wird allerdings nicht korrekt gespeichert.
In der Datenbank lautet mein Password folgendermaßen:
Kurzgefasst:
Das Password bzw irgendwo bei der Übertragung wird der Verschlüsselte Text verändert, da das + , die bei dem verschlüsseltem Text enthalten sind, werden einfach durch ein Leerzeichen ersetzt. Dies passiert auch, wenn ich die Daten mittels POST übermittle bzw. dem Body separat hinzufüge (Da fällt mir der name nur grad nicht ein)
Hätte da jemand eine Idee, woran es liegen könnte??
PS: Wenn der Text in der Verschlüsselten Variante kein + enthält, wird es korrekt in der Datenbank hinterlegt.
Grüße Lenon!
ich habe nicht unbedingt ein Problem, sondern eher eine Unverständlichkeit.
Und zwar verschlüsselt ich mit folgendem einen eingegebenen Text mittels AES128-Bit:
Quellcode
- extension String{
- func aesEncrypt(key: String, iv: String) throws -> String {
- let data = self.data(using: .utf8)!
- let encrypted = try! AES(key: key, iv: iv, blockMode: .CBC, padding: PKCS7()).encrypt([UInt8](data))
- let encryptedData = Data(encrypted)
- return encryptedData.base64EncodedString()
- }
- func aesDecrypt(key: String, iv: String) throws -> String {
- let data = Data(base64Encoded: self)!
- let decrypted = try! AES(key: key, iv: iv, blockMode: .CBC, padding: PKCS7()).decrypt([UInt8](data))
- let decryptedData = Data(decrypted)
- return String(bytes: decryptedData.bytes, encoding: .utf8) ?? "Could not decrypt"
- }
- }
Nun lautet der String des verschlüsselten Textes:
Nun übermittel ich den verschlüsselten Text an ein .php File, welches diesen Text in die Datenbank einträgt:
Quellcode
- let urlString = "http://BLA.de/Database/register.php?username=\(tfUsername.text!)&password=\(cryptedPw)&mail=\(tfMail.text!)&realname=\(tfRealname.text!)"
- let url = URL(string: urlString)
- var request = URLRequest(url: url!)
- let session = URLSession.shared
- // Task wich gets The Data from The PHP-File
- let task = session.dataTask(with: request, completionHandler: { (data, response, error) in
Das Password wird allerdings nicht korrekt gespeichert.
In der Datenbank lautet mein Password folgendermaßen:
Kurzgefasst:
Das Password bzw irgendwo bei der Übertragung wird der Verschlüsselte Text verändert, da das + , die bei dem verschlüsseltem Text enthalten sind, werden einfach durch ein Leerzeichen ersetzt. Dies passiert auch, wenn ich die Daten mittels POST übermittle bzw. dem Body separat hinzufüge (Da fällt mir der name nur grad nicht ein)
Hätte da jemand eine Idee, woran es liegen könnte??
PS: Wenn der Text in der Verschlüsselten Variante kein + enthält, wird es korrekt in der Datenbank hinterlegt.
Grüße Lenon!