System.Security.Cryptography.MACTripleDES()未在.NET Standard中定义

时间:2018-01-22 00:41:51

标签: vb.net cryptography .net-standard

我正在将一个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框架库中生成错误

非常感谢你提前

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代码。