首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# Windows.Security.Cryptography.Core参考

C# Windows.Security.Cryptography.Core参考
EN

Stack Overflow用户
提问于 2017-04-21 02:43:58
回答 2查看 718关注 0票数 1

我对c#相当陌生,但是我正在构建一个访问Marvel的控制台应用程序,我需要为这个API调用生成一个MD5哈希。经过大量研究,我发现您可以使用System.Security.Cryptography名称空间或Windows.Security.Cryptography.Core命名空间来生成哈希。我目前正尝试使用System.Security.Cryptography命名空间,如下所示:

代码语言:javascript
复制
 public string Hash(string data)
    {
        MD5 md5 = MD5.Create();
        byte[] toBeHashedBytes = Encoding.ASCII.GetBytes(data);
        byte[] hash = md5.ComputeHash(toBeHashedBytes);

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < hash.Length; i++)
        {
            sb.Append(hash[i].ToString());
        }

        return sb.ToString();
    }

然而,从此方法生成的散列在传递给惊奇API时无效。我试图使用Windows.Security.Cryptography.Core命名空间,但似乎找不到需要什么引用。我只是需要添加一个引用,还是需要先下载一个程序集?

我正在使用Windows 10和Visual 2017

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-21 02:55:06

基本问题是,您将字节组合在基10中,而不是十六进制。修正附加行如下:

代码语言:javascript
复制
sb.Append(hash[i].ToString("x2"));

然后,该方法给出输入“1 for 1234”的正确值。

ffd275c5130566a2916217b101f26150

正如他们在文档中所描述的那样。

票数 3
EN

Stack Overflow用户

发布于 2017-04-21 02:54:02

Windows.Security.Cryptography.Core是UWP或Windows的命名空间,不是控制台应用程序的名称空间。您不能在控制台应用程序中使用它。

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

https://stackoverflow.com/questions/43533056

复制
相关文章

相似问题

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