powershell - 生成 HMAC SHA256 签名 Powershell
问题描述
对于 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=”
如文档中所述,它应该生成“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
谁能帮我吗?
解决方案
使用 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 '-', ''
推荐阅读
- excel - Excel 日期值函数
- html - 如何将“背景图片放在另一个 div”上?
- node.js - 调试 SSR node.js 服务器端 VSCode
- javascript - Puppeteer - 使用 querySelectorAll() 访问动态 HTML 环境中的元素
- javascript - 从窗口上下文中获取 ServiceWorkerGlobalScope 的变量
- c# - 如何改善导致延迟的 GameObject-Array
- html - 在组件方法中使用 *ngFor 值
- c++ - C2039 - FUNCTION Is not a member of CLASS
- android - 从 ViewPager 和 TabLayout Android 中删除选项卡片段
- python - 使用 python 连接到在 Go 中运行的 grpc 服务的问题