You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何相同字符串在R与C#中生成的MD5哈希值不一致?

问题:无法在R中复现C#生成的MD5哈希值

C#代码及结果

以下是生成哈希的C#代码:

private static string CreateHashKey(object myString)
{
    byte[] buffer = JsonSerializer.SerializeToUtf8Bytes(myString);
    var cryptoTransform = MD5.Create();
    return BitConverter.ToString(cryptoTransform.ComputeHash(buffer));
}

当传入字符串"Bangalore"时,生成的哈希值为:92-E7-92-78-E7-D9-37-C1-AF-AC-D7-E6-B2-CD-B6-5E

R中的尝试及结果

我在R中尝试了多种方式,均无法得到相同结果:

使用digest包

  • 代码:

    library(digest)
    digest::digest(serialize("Bangalore", connection = NULL),"md5")
    

    结果:e85798ec7dd5003d8d464f6c5d8de5c5

  • 代码:

    digest::digest(serialize("Bangalore", connection = NULL,ascii = TRUE),"md5")
    

    结果:5377a11b9792c774ddd726361c56d8f2

  • 代码:

    digest::digest(charToRaw('Bangalore'),"md5")
    

    结果:bf19f50fed3db016cb78cdb029db3034

  • 代码:

    digest::digest(serialize(charToRaw('Bangalore'),connection = NULL,ascii = TRUE),"md5")
    

    结果:be7696c777f9418e8e853084d6ddf0ae

使用openssl包

代码:

library(openssl)
md5("Bangalore") # "1bc99cb2f4153c2d0d8025ee5575b2a0"

结果:1bc99cb2f4153c2d0d8025ee5575b2a0

有资料提到转换为字节可解决问题,但目前仍未奏效……


内容的提问来源于stack exchange,提问作者shwan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 22:35:14