我正在将 vb.net 库转换为 .NET Standard,但收到“System.Security.Cryptography.MACTripleDES 未定义”消息
Imports System.Security.Cryptography
Shared Function Encode(ByVal value As String, _
ByVal key As String) As String
Dim mac3des As New System.Security.Cryptography.MACTripleDES()
Dim md5 As New System.Security.Cryptography.MD5CryptoServiceProvider()
mac3des.Key = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(key))
Return Convert.ToBase64String( _
System.Text.Encoding.UTF8.GetBytes(value)) & "-"c & _
Convert.ToBase64String(mac3des.ComputeHash( _
System.Text.Encoding.UTF8.GetBytes(value)))
End Function
有没有办法解决这个问题,因为它没有在 4.7.1 框架库中生成错误
提前非常感谢
最佳答案
由于 MACTripleDES 是一种相当不常见的算法,因此它没有移植到 .NET Core;因此不是 .NET 标准的一部分。 (HMACSHA1在NuGet包中每次使用MACTripleDES使用20次,HMACSHA256为10:1)
这个概念相当简单:TripleDES.Create()
,将 IV 设置为 new byte[8]
,将 key 设置为您的 key ,将 PaddingMode 设置为 Zeros (或者您在使用中设置的任何内容)。然后通过它运行所有数据,最后 8 个字节是 MAC。
.NET Framework 代码可在 referencesource.microsoft.com 上获取。如果您的项目符合MS-RSL license .
关于vb.net - System.Security.Cryptography.MACTripleDES() 未在 .NET 标准中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48373260/