Ich habe Probleme mit dem Erhalt von Passwortsalz von meinem VM-Server über Alamofire. Ich mache eine Anfrage an den Server und es sollte mir Salz zurückgeben, damit ich mein Passwort salzen, es hacken und es zurück zum Server senden kann.Speichern von Alamofire-Anfragedaten in eine Variable
Das Problem ist, dass ich verstehe nicht, wie das Salz zu sparen, dass Alamofire empfängt, in eine Variable, also kann ich es nur mit einem Passwort hinzufügen und Hash es wie folgt aus:
let salted_password = user_password + salt
let hash = salted_password.sha1()
Wo user_password
ist was der Benutzer in Passwort-Feld eingegeben und salt
ist, was ich von Alamofire Salz Anfrage erhalten habe.
ist hier mein Code:
func getSalt(completionHandler: @escaping (DataResponse<String>, Error?) -> Void) {
Alamofire.request("http://192.168.0.201/salt", method: .post, parameters: salt_parameters).responseString { response in
switch response.result {
case .success(let value):
completionHandler(response as DataResponse<String>, nil)
case .failure(let error):
completionHandler("Failure", error)
}
}
}
let salt = getSalt { response, responseError in
return response.result.value!
}
Es mir folgende Fehler gibt:
Binary operator '+' cannot be applied to operands of type 'String' and '()'.
So ist es möglich, einen Anforderungswert in eine Variable zu speichern? Was soll ich machen?
Vielen Dank für Ihre Aufmerksamkeit.
Was ist der Rückgabewert von 'getSalt()'? Es scheint, dass Sie versuchen, eine "Zeichenfolge" mit dem Ergebnis dieser Funktion zu kombinieren, die Sie nicht können (wie Sie auf die harte Tour entdeckt haben :)) – pbodsk
was Sie tun sollten, ist etwas wie das stattdessen. 'var salt: Schnur ?; getSalt {Antwort, responseError in salt = response.result.value; } ' –
@ZonilyJame Vielen Dank, es funktioniert! –