我有一个 linux 命令,我正在尝试找出如何在 C# 中模仿它以获得预期但似乎无法获得的结果。它与使用 key 对 url 进行哈希处理有关。 linux 命令是(例如假网站和数字):
echo -n "http://example.com/deliver?id=8247653546577888776655553d323453-3h78-7y42-b3d7-8u4q111y5hr6×tamp=1556034591" | openssl dgst -sha1 -hmac "567gy324-6666-4444-fr46-2h7arwdh5555"
我真的不知道这些命令是什么意思,所以不确定从哪里开始尝试在 C# 中获得这种调用。
最佳答案
此 OpenSSL 命令正在计算通过标准输入(即 echo 命令的输出)传递给它的数据的 HMAC。 HMAC 是一种消息验证代码 (MAC),用于验证消息的完整性,即如果攻击者以任何方式修改消息,则 MAC 代码将不再匹配(验证失败)。 HMAC 将 key 与底层哈希算法(在本例中为 SHA1)相结合以生成输出 MAC 值。
Microsoft 文档在此处提供了如何使用 SHA1 操作执行 HMAC 的完整示例:
关于c# - 在 C# 中模拟 linux openssl 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55816529/