Мне нужно преобразовать строку в sha1, а затем использовать base64. Просто base64_encode(sha1(My_String)). Я хочу это сделать, но не могу исправить это правильно. Я могу преобразовать SHA1 с помощью этого кода: let firstTry = SHA1.hash(from: «call»), но когда я пытаюсь сделать это в base64, он выдает ошибку, например, строка не разрешена. Как мне преобразовать base64?
Спасибо за внимание.
Я пытаюсь преобразовать c[all] в sha1 с помощью этого кода:
let str = "c[all]"
let den3 = str.sha1()
он работает хорошо и возвращает правильный результат:
0fee061faab109e27b75010f2f1a0d8258bab7c5
И когда я добавляю let den3 = str.sha1().toBase64(), я получаю:
MGZlZTA2MWZhYWIxMDllMjdiNzUwMTBmMmYxYTBkODI1OGJhYjdjNQ==
что на самом деле неправильно, мне нужно это понять:
D+4GH6qxCeJ7dQEPLxoNgli6t8U=
В чем моя проблема?
Здесь мои расширения >
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()
}
}
Подробнее здесь: https://stackoverflow.com/questions/598 ... g-in-swift