- Registriert
- 12.07.08
- Beiträge
- 351
Ein
und somit dass Passwort im Klartext im Quellcode zu speichern ist natürlich nicht schön. In PHP reicht dazu eine Codezeile aus um ein Passwort mid MD5 oder SHA zu verschlüsseln. Dazu noch einen Salt Wert und die Passwortabfrage sollte relativ sicher sein.
In Swift scheint es aber so eine einfache Funktion nicht zu geben. Im Internet habe ich die abenteuerlichste Konstrukte gefunden, die aber alle nur in Fehlermeldungen enden.
Wie würdet ihr ein Passwort im App Quellcode sichern. Eine Funktion für MD5 wäre eigentlich sehr hilfreich, da in der Datenbank eh schon die MD5 Hashes samt dem Salt Wert gespeichert sind. Somit könnte ich alle bisherigen Passwörter der Nutzer die eh schon in MySQL vorhanden sind weiter verwenden.
Ist aber kein muss falls es so eine Funktion nicht gibt. Mir würde vorerst ausreichen das Passwort nicht im Klartext zu speichern.
Hier wäre so ein Beispiel Code, der aber irgendeine Crypto Library benötigt (<CommonCrypto/CommonCrypto.h>). Und so ohne weiteres nicht lauffähig ist.
Code:
if label.text == "meinpasswort"
und somit dass Passwort im Klartext im Quellcode zu speichern ist natürlich nicht schön. In PHP reicht dazu eine Codezeile aus um ein Passwort mid MD5 oder SHA zu verschlüsseln. Dazu noch einen Salt Wert und die Passwortabfrage sollte relativ sicher sein.
In Swift scheint es aber so eine einfache Funktion nicht zu geben. Im Internet habe ich die abenteuerlichste Konstrukte gefunden, die aber alle nur in Fehlermeldungen enden.
Wie würdet ihr ein Passwort im App Quellcode sichern. Eine Funktion für MD5 wäre eigentlich sehr hilfreich, da in der Datenbank eh schon die MD5 Hashes samt dem Salt Wert gespeichert sind. Somit könnte ich alle bisherigen Passwörter der Nutzer die eh schon in MySQL vorhanden sind weiter verwenden.
Ist aber kein muss falls es so eine Funktion nicht gibt. Mir würde vorerst ausreichen das Passwort nicht im Klartext zu speichern.
Hier wäre so ein Beispiel Code, der aber irgendeine Crypto Library benötigt (<CommonCrypto/CommonCrypto.h>). Und so ohne weiteres nicht lauffähig ist.
Code:
extension String{var md5:String!{let str =self.cStringUsingEncoding(NSUTF8StringEncoding)let strLen = CC_LONG(self.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))let digestLen =Int(CC_MD5_DIGEST_LENGTH)let result =UnsafeMutablePointer<CUnsignedChar>.alloc(digestLen)
CC_MD5(str!, strLen, result)
var hash =NSMutableString()for i in0..<digestLen {
hash.appendFormat("%02x", result[i])}
result.dealloc(digestLen)
returnString(format: hash)}}