c# - 在 C# 中模拟 linux openssl 命令

标签 c# linux openssl

我有一个 linux 命令,我正在尝试找出如何在 C# 中模仿它以获得预期但似乎无法获得的结果。它与使用 key 对 url 进行哈希处理有关。 linux 命令是(例如假网站和数字):

echo -n "http://example.com/deliver?id=8247653546577888776655553d323453-3h78-7y42-b3d7-8u4q111y5hr6&timestamp=1556034591" | openssl dgst -sha1 -hmac "567gy324-6666-4444-fr46-2h7arwdh5555"

我真的不知道这些命令是什么意思,所以不确定从哪里开始尝试在 C# 中获得这种调用。

最佳答案

此 OpenSSL 命令正在计算通过标准输入(即 echo 命令的输出)传递给它的数据的 HMAC。 HMAC 是一种消息验证代码 (MAC),用于验证消息的完整性,即如果攻击者以任何方式修改消息,则 MAC 代码将不再匹配(验证失败)。 HMAC 将 key 与底层哈希算法(在本例中为 SHA1)相结合以生成输出 MAC 值。

Microsoft 文档在此处提供了如何使用 SHA1 操作执行 HMAC 的完整示例:

https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.hmacsha1?view=netframework-4.8

关于c# - 在 C# 中模拟 linux openssl 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55816529/

相关文章:

c# - 在 C# 中使用 IFilter 并从数据库而不是文件系统中检索文件

c# - 在 SQL Server Management Studio 中执行一个简单的存储过程

ssl - curl 和 openssl 查看不同的发行者

使用c语言更改终端目录

从 Xlib 转换为 xcb

ios - OpenSSL 服务器未收到来自 WKWebView 的媒体(音频/视频)请求

encryption - OpenSSL EVP_CIPHER_CTX 获取更新 IV

c# - C# 中的最小起订量事务范围

c# - 我如何捕获页面无法加载消息?

Linux 原始套接字 : Block Packets?