【问题标题】:Generate HMAC SHA256 signature Powershell生成 HMAC SHA256 签名 Powershell
【发布时间】:2026-02-05 06:00:01
【问题描述】:

对于 3commas,我尝试使用文档中的示例参数在 Powershell 中生成 HMAC SHA256 签名:

$secret = 'NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j'
$message = '/public/api/ver1/accounts/new?type=binance&name=binance_account&api_key=XXXXXX&secret=YYYYYY'

$hmacsha = New-Object System.Security.Cryptography.HMACSHA256
$hmacsha.key = [Text.Encoding]::ASCII.GetBytes($secret)
$signature = $hmacsha.ComputeHash([Text.Encoding]::ASCII.GetBytes($message))
$signature = [Convert]::ToBase64String($signature)

$signature

它生成“MPZ4oVcjApDgBHXP/8y8kq42WdlMFFosDp0Poo9BwRo="

作为described in the documentation,它应该生成“30f678a157230290e00475cfffccbc92ae3659d94c145a2c0e9d0fa28f41c11a”

[linux]$ echo -n "/public/api/ver1/accounts/new?type=binance&name=binance_account&api_key=XXXXXX&secret=YYYYYY" | openssl dgst -sha256 -hmac "NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"
(stdin)= 30f678a157230290e00475cfffccbc92ae3659d94c145a2c0e9d0fa28f41c11a

谁能帮帮我?

【问题讨论】:

    标签: powershell hmac sha


    【解决方案1】:

    使用 BitConverter 类。

    $secret = 'NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j'
    $message = '/public/api/ver1/accounts/new?type=binance&name=binance_account&api_key=XXXXXX&secret=YYYYYY'
    
    $hmacsha = New-Object System.Security.Cryptography.HMACSHA256
    $hmacsha.key = [Text.Encoding]::ASCII.GetBytes($secret)
    $signature1 = $hmacsha.ComputeHash([Text.Encoding]::ASCII.GetBytes($message))
    #$signature2 = [Convert]::ToBase64String($signature1)
    
    [System.BitConverter]::ToString($signature1) -replace '-', ''
    

    【讨论】: