我正在将vb.net库转换为.NET标准,但得到的结果是'System.Security.Cryptography.MACTripleDES is not defined‘
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框架库中生成错误
提前谢谢你
发布于 2018-01-23 06:01:00
由于MACTripleDES是一种相当不常见的算法,它没有被移植到.NET核心;因此不是.NET标准的一部分。(HMACSHA1在NuGet包中使用20次,每次使用MACTripleDES,HMACSHA256为10:1)
概念相当简单:TripleDES.Create(),将IV设置为new byte[8],将key设置为key,将PaddingMode设置为Zeros (或您在使用中设置的任何值)。然后运行所有的数据,最后8个字节就是MAC。
如果您的项目支持MS-RSL license,则可以在referencesource.microsoft.com上获得MS-RSL license框架代码。
https://stackoverflow.com/questions/48373260
复制相似问题