Csharp/C#教程:PHP中的MACTripleDES分享


PHP中的MACTripleDES

我试图获得相当于C# MACTripleDES类的MAC TripleDES。

我试过跟随mcrypt() ,但这只是在TripleDES中编码。 我需要获得一个等效的MACTripleDES字符串作为在C#中生成的字符串来validation消息。

我也查看了PHP的hash_hmac()函数,但它没有给出使用TripleDES生成MAC的选项

我不确定,因为微软并不打算说他们的类符合什么标准,但我怀疑这个NIST文档是微软类计算的,只使用三重DES代替DES。

我想你必须使用mcrypt中的原语编写自己的方法。

编辑1:

受到赏金的启发,我有两个例子显示PHP和C#中的等效结果。

首先,C#:

 using System; using System.Text; using System.Security.Cryptography; namespace TDESMacExample { class MainClass { public static void Main (string[] args) { var keyString = "012345678901234567890123"; var keyBytes = Encoding.ASCII.GetBytes(keyString); var mac = new MACTripleDES(keyBytes); var data = "please authenticate me example number one oh one point seven niner"; Console.WriteLine(data.Length); var macResult = mac.ComputeHash(Encoding.ASCII.GetBytes(data)); Console.WriteLine(BitConverter.ToString(macResult)); // B1-29-14-74-EA-E2-74-2D } } } 

接下来,PHP:

  "; ?> 

MAC只是CBC加密数据的最后八个字节。 如果key,IV和padding方法匹配,则应该只能使用这些字节。

有关MAC定义的更多详细信息,请参见FIPS-81的附录F ,DES操作模式 。

上述就是C#学习教程:PHP中的MACTripleDES分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/958452.html

(0)
上一篇 2021年11月22日
下一篇 2021年11月22日

精彩推荐