Wy md5 ha sh дает мне другой результат, используя swift - PullRequest
1 голос
/ 18 января 2020

Я хочу реализовать дайджест-аутентификацию с помощью 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 (после дайджест-проверки подлинности документации). Так что мой дайджест всегда рассчитывался неправильно. Спасибо Арнольд

1 Ответ

1 голос
/ 18 января 2020

Моя ошибка, она дает мне правильный результат. У меня была ошибка при вычислении га sh. Расширение строки в порядке.

...