Wie kann ich sha1 in der Base64-Codierung in Swift ändern?IOS

Programmierung für iOS
Guest
 Wie kann ich sha1 in der Base64-Codierung in Swift ändern?

Post by Guest »

Ich muss den String in sha1 konvertieren und dann base64 verwenden. Einfach base64_encode(sha1(My_String)). Ich möchte das tun, kann es aber nicht richtig beheben. Ich kann SHA1 mit diesem Code konvertieren: let firstTry = SHA1.hash(from: "call"), aber als ich versuchte, es in Base64 zu erstellen, gab es einen Fehler, der besagt, dass die Zeichenfolge nicht zulässig ist. Wie kann ich base64 konvertieren?
Vielen Dank für Ihre Aufmerksamkeit.
Ich versuche, c[all] mit diesem Code in sha1 zu konvertieren:

Code: Select all

let str = "c[all]"
let den3 = str.sha1()
es funktioniert gut und gibt korrekt zurück, was lautet:

0fee061faab109e27b75010f2f1a0d8258bab7c5

Und wenn ich let den3 = str.sha1().toBase64() hinzufüge, erhalte ich:

MGZlZTA2MWZhYWIxMDllMjdiNzUwMTBmMmYxYTBkODI1OGJhYjdjNQ==

was eigentlich falsch ist, ich muss das bekommen:

D+4GH6qxCeJ7dQEPLxoNgli6t8U=

Wo ist mein Problem?
Hier meine Erweiterungen

Code: Select all

extension String {
func sha1() -> String {
let data = Data(self.utf8)
var digest = [UInt8](repeating: 0, count:Int(CC_SHA1_DIGEST_LENGTH))
data.withUnsafeBytes {
_ = CC_SHA1($0.baseAddress, CC_LONG(data.count), &digest)
}
let hexBytes = digest.map { String(format: "%02hhx", $0) }
return hexBytes.joined()
}

func toBase64() -> String {
return Data(self.utf8).base64EncodedString()
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post