Я хочу реализовать дайджест-аутентификацию с помощью Swift. К сожалению, после нескольких часов тестирования я увидел, что использование этого метода создания md5 ha sh дает мне неверный результат.
extension String {
var md5: String {
let data = Data(self.utf8)
let hash = data.withUnsafeBytes { (bytes: UnsafeRawBufferPointer) -> [UInt8] in
var hash = [UInt8](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH))
CC_MD5(bytes.baseAddress, CC_LONG(data.count), &hash)
return hash
}
return hash.map { String(format: "%02x", $0) }.joined()
}
}
с использованием этой строки
let test = "test:testrealm@host.com:pwd123".md5
test имеет значение : 4ec2086d6f09366e4683dbdc5809444a, но он должен иметь 939e7578ed9e3c518a452acee763bce9 (после дайджест-проверки подлинности документации). Так что мой дайджест всегда рассчитывался неправильно. Спасибо Арнольд