我有一个linux命令,我试图弄清楚如何在C#中模仿它来获得预期的效果,但似乎无法获得它。它与使用密钥对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#进行此类调用。
答案 0 :(得分:1)
此OpenSSL命令正在计算在stdin上传递给它的数据的HMAC(即echo命令的输出)。 HMAC是消息身份验证代码(MAC)的一种,用于验证消息的完整性,即,如果攻击者以任何方式修改消息,则MAC代码将不再匹配(它将无法验证)。 HMAC将密钥与基础哈希算法(在本例中为SHA1)结合在一起,以生成输出MAC值。
Microsoft文档在此处提供了如何通过SHA1操作执行HMAC的完整示例: