gpt4 book ai didi

python - Object-C 中的 MD5 不匹配结果

转载 作者:太空宇宙 更新时间:2023-11-04 08:15:28 25 4
gpt4 key购买 nike

我尝试使用 md5 散列字符串(十六进制)。然而,输出字符串与我在 python 或 javascript (node.js) 中创建的类似输出不匹配。

输入字符串:

NSString *input = @"001856413a840871624d6c6f553885b5b16fae345c6bdd44afb26141483bff629df47dbd9ad0";


- (NSString *)md5:(NSString *)input {
// b2b22e766b849b8eb41b22ae85dc49b1
unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH];
const char *cStr = [input UTF8String];
CC_MD5_CTX ctx;
CC_MD5_Init(&ctx);
CC_MD5_Update(&ctx, cStr, [input length]);
CC_MD5_Final(md5Buffer, &ctx);

NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x",md5Buffer[i]];

return output;

在 python 中我这样做:

binaryCredentialString = binascii.unhexlify(input)
# Now MD5 hash the binary string
m = hashlib.md5()
m.update(binaryCredentialString)
# Hex encode the hash to obtain the final credential string
credential = m.hexdigest()

Python 返回正确的 md5 输出,object-C 没有。这是为什么?

非常感谢任何帮助- 帕斯卡

最佳答案

在 Python 中,您正在将十六进制解码回二进制,但在 Objective-C 中则不是。将您的字符串解码为 NSMutableData 实例,然后向摘要函数提供 [data bytes](和 [data length])。

关于python - Object-C 中的 MD5 不匹配结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15317836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com