python md5算法多次运行_md5一个字符串多次在不同的平台上得到不同的结果

t.c#include

#include

#include

#include

static char* unsigned_to_signed_char(const unsigned char* in , int len) {

char* res = (char*)malloc(len * 2 + 1);

int i = 0;

memset(res , 0 , len * 2 + 1);

while(i < len) {

sprintf(res + i * 2 , "%02x" , in[i]);

i ++;

};

return res;

}

static unsigned char * md5(const unsigned char * in) {

MD5_CTX ctx;

unsigned char * result1 = (unsigned char *)malloc(MD5_DIGEST_LENGTH);

MD5_Init(&ctx);

printf("len: %lu \n", strlen(in));

MD5_Update(&ctx, in, strlen(in));

MD5_Final(result1, &ctx);

return result1;

}

int main(int argc, char *argv[])

{

const char * i = "abcdef";

unsigned char * data = (unsigned char *)malloc(strlen(i) + 1);

strncpy(data, i, strlen(i));

unsigned char * result1 = md5(data);

free(data);

printf("%s\n", unsigned_to_signed_char(result1, MD5_DIGEST_LENGTH));

unsigned char * result2 = md5(result1);

free(result1);

printf("%s\n", unsigned_to_signed_char(result2, MD5_DIGEST_LENGTH));

unsigned char * result3 = md5(result2);

free(result2);

printf("%s\n", unsigned_to_signed_char(result3, MD5_DIGEST_LENGTH));

return 0;

}

makeflle公司

^{pr2}$

还有t.py#!/usr/bin/env python

import hashlib

import binascii

src = 'abcdef'

a = hashlib.md5(src).digest()

b = hashlib.md5(a).digest()

c = hashlib.md5(b).hexdigest().upper()

print binascii.b2a_hex(a)

print binascii.b2a_hex(b)

print c

Debian6 x86和MacOS 10.6上python脚本的结果是相同的:e80b5017098950fc58aad83c8c14978e

b91282813df47352f7fe2c0c1fe9e5bd

85E4FBD1BD400329009162A8023E1E4B

MacOS上的c版本是:len: 6

e80b5017098950fc58aad83c8c14978e

len: 48

eac9eaa9a4e5673c5d3773d7a3108c18

len: 64

73f83fa79e53e9415446c66802a0383f

为什么它与Debian6不同?

Debian环境:gcc (Debian 4.4.5-8) 4.4.5

Python 2.6.6

Linux shuge-lab 2.6.26-2-686 #1 SMP Thu Nov 25 01:53:57 UTC 2010 i686 GNU/Linux

OpenSSL是从测试存储库安装的。在

MacOS环境:i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)

Python 2.7.1

Darwin Lees-Box.local 10.7.0 Darwin Kernel Version 10.7.0: Sat Jan 29 15:17:16 PST 2011; root:xnu-1504.9.37~1/RELEASE_I386 i386

OpenSSL是从MacPort安装的。在openssl @1.0.0d (devel, security)

OpenSSL SSL/TLS cryptography library

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值