我正在将一个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框架库中生成错误
非常感谢你提前
答案 0 :(得分:0)
由于MACTripleDES是一种相当罕见的算法,因此它没有移植到.NET Core;因此不属于.NET标准。 (每次使用MACTripleDES时,HMACSHA1在NuGet包中使用20次,HMACSHA256为10:1)
概念非常简单:TripleDES.Create()
,将IV设置为new byte[8]
,将密钥设置为密钥,将PaddingMode设置为零(或者在您的使用中将其设置为任何内容)。然后通过它运行所有数据,最后8个字节是MAC。
如果您的项目适合referencesource.microsoft.com,则MS-RSL license上可以使用.NET Framework代码。