F# преобразование hmac Python в F#
Как бы я конвертировать этот код Python в F# "
message = nonce + client_id + api_key
signature = hmac.new(API_SECRET, msg=message, digestmod=hashlib.sha256).hexdigest().upper()
Мой код до сих пор для достижения этой цели:
let message =string(nonce)+ client_id + api_key
let signature = HMACSHA256.Create(API_secret+message)
Простая проблема, я не могу найти то, что представляет hexdigest()
функция в F#.
Кроме того, я объединяю API_Secret
с сообщением, как я сделал, или они должны быть отделены?
1 ответ
Решение
Я думаю, что вам нужно что-то вроде этого:
let hexdigest (bytes : byte[]) =
let sb = System.Text.StringBuilder()
bytes |> Array.iter (fun b -> b.ToString("X2") |> sb.Append |> ignore)
string sb
let signature =
use hmac = new HMACSHA256.Create(API_secret)
hmac.ComputeHash(message)
|> hexdigest
Часть с StringBuilder это то, что hexdigest
делает в питоне (если я получу hexdigest
право)