首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET标准中未定义System.Security.Cryptography.MACTripleDES()

.NET标准中未定义System.Security.Cryptography.MACTripleDES()
EN

Stack Overflow用户
提问于 2018-01-22 08:41:51
回答 1查看 597关注 0票数 2

我正在将vb.net库转换为.NET标准,但得到的结果是'System.Security.Cryptography.MACTripleDES is not defined‘

代码语言:javascript
复制
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框架库中生成错误

提前谢谢你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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框架代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48373260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档