vb.net - System.Security.Cryptography.MACTripleDES() 未在 .NET 标准中定义

标签 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 框架库中生成错误

提前非常感谢

最佳答案

由于 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/

相关文章:

vb.net - 禁用时保持按钮颜色不变

VB.NET - 将事件作为参数传递

c# - 跨平台方式获取父进程ID

c# - .NET Standard 中的 GetMethod 等效项

vb.net - 如何将文本数据保存到二进制文件中以使其不可读

php - 桌面软件开发(可能使用网络技术)和密码检查

java - 您真的需要安全的随机 UUID 吗?

c - OpenSSL 使用 EVP 与算法 API 进行对称加密

.NET Framework 4.6.2 和 .NET Standard 2.0 不兼容

vb.net - VS2015 RC 延迟通知