首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript CryptoJS.enc.Base64等效C#

JavaScript CryptoJS.enc.Base64等效C#
EN

Stack Overflow用户
提问于 2021-10-06 17:07:49
回答 1查看 134关注 0票数 0

我正在尝试转换JavaScript CryptoJS.enc.Base64等效的C#。我盯着的绳子是“米老鼠”。98df1b3e0103f57a9817d675071504ba的结果与toMD5 JavaScript代码产生匹配的C#代码

但是,toB64代码对于JavaScript和C#有两个不同的结果。

mN8bPgED9XqYF9Z1BxUEug== JavaScript toB64结果

OThkZjFiM2UwMTAzZjU3YTk4MTdkNjc1MDcxNTA0YmE== C# toB64结果

JavaScript CryptoJS.enc.Base64等效的C#是什么,这样我就可以在C#中得到相同的结果?

代码语言:javascript
复制
            // Javascript
            // var toMD5 = CryptoJS.MD5("mickeymouse");
            // toMD5 RESULT: 98df1b3e0103f57a9817d675071504ba

            // C# (match with js)
            var toMD5 = CreateMD5("mickeymouse");
            // toMD5 RESULT: 98df1b3e0103f57a9817d675071504ba


            // Javascript
            // var toB64 = toMD5.toString(CryptoJS.enc.Base64);
            // toB64 RESULT:  mN8bPgED9XqYF9Z1BxUEug==

            // C# (not matched with js)
            var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(toMD5);
            var toB64 = System.Convert.ToBase64String(plainTextBytes);
            // toB64 RESULT:  OThkZjFiM2UwMTAzZjU3YTk4MTdkNjc1MDcxNTA0YmE=
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-06 17:29:24

不确定CreateMD5函数做什么,但是计算MD5字节并将它们直接传递给Convert.ToBase64String会产生预期的结果:

代码语言:javascript
复制
using var md5 = MD5.Create();
var hash = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes("mickeymouse"));
Console.WriteLine(Convert.ToBase64String(hash) == "mN8bPgED9XqYF9Z1BxUEug==");// prints True

如果仍然需要使用CreateMD5 --使用反向算法将字节转换为字符串,而不仅仅是System.Text.Encoding.UTF8.GetBytes (因为System.Text.Encoding.UTF8.GetString(hash)产生的结果与CreateMD5不同)。

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

https://stackoverflow.com/questions/69469938

复制
相关文章

相似问题

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