Я пытаюсь зашифровать данные для отправки в API.
API требует, чтобы данные отправлялись в виде hmac_sha512
зашифрованного хэша.
Я нашел различные примеры того, как это можно было сделать для sha1
и других (не sha512
), а также в более старых версиях Swift.
Ни один из примеров, которые я пробовал, не работает для swift 3.1
Любая помощь в правильном направлении будет оценена по достоинству.
Изменить:
В PHP я успешно отправляю его, используя:
$sign = hash_hmac('sha512', $post_data, $this->secret);
Редактировать 2:
Я did add briding header
, я не знаю, что делать дальше! Поскольку приведенные ниже примеры кода не работают для swift 3.1 :(
Редактировать 3:
Решено! Угадайте, я неправильно создавал заголовок бридинга! :(
P.S. Я стараюсь избегать CryptoSwift, сосредоточившись на CommonCrypto.
Приведенный ниже ответ неверен, так как он не позволяет hmac получить ключ для шифрования. Я провел исследование и, наконец, заработал. Этот пост содержит рабочий пример проекта для hmac: https://github.com/nabtron/hmacTest.