Преобразование подписи HMAC из Go в RPython

Программы на Python
Anonymous
Преобразование подписи HMAC из Go в R

Сообщение Anonymous »

Я пытаюсь воспроизвести следующий код golang в R для создания подписи для consibio/mbtilesever. Цель состоит в том, чтобы создать приложения на R и Python, которые могут получать доступ к mbtileservers через безопасное соединение. Хотя я могу создать рабочую версию с помощью Python, рабочая версия с использованием R оказывается сложной задачей. Заранее спасибо.
Пример кода GO по ссылке выше:

serviceId := "test"
date := "2019-03-08T19:31:12.213831+00:00"
salt := "0EvkK316T-sBLA"
secretKey := "YMIVXikJWAiiR3q-JMz1v2Mfmx3gTXJVNqme5kyaqrY"

key := sha1.New()
key.Write([]byte(salt + secretKey))

hash := hmac.New(sha1.New, key.Sum(nil))
message := fmt.Sprintf("%s:%s", date, serviceId)
hash.Write([]byte(message))

b64hash := base64.RawURLEncoding.EncodeToString(hash.Sum(nil))
fmt.Println(b64hash) // Should output: 2y8vHb9xK6RSxN8EXMeAEUiYtZk


В коде Python (работает):
import hashlib
import hmac
import base64

service_id = "test"
date = "2019-03-08T19:31:12.213831+00:00"
salt = "0EvkK316T-sBLA"
secret_key = "YMIVXikJWAiiR3q-JMz1v2Mfmx3gTXJVNqme5kyaqrY"

key = hashlib.sha1()
key.update((salt + secret_key).encode())

hash_obj = hmac.new(key.digest(), (date + ":" + service_id).encode(), hashlib.sha1)

b64_hash = base64.urlsafe_b64encode(hash_obj.digest()).decode()
print(b64_hash) # Should output: 2y8vHb9xK6RSxN8EXMeAEUiYtZk

Код R на данный момент (не работает):
library(openssl)
library(digest)

service_id

Подробнее здесь: https://stackoverflow.com/questions/783 ... -go-into-r

Вернуться в «Python»