python和java md5加密,如何将javamd5加密代码移植到Python中?

以下是java用于对字符串进行MD5加密的标准代码import java.security.MessageDigest;

public class TransCode{

public static byte[] transcode(String text) throws Exception{

byte[] bytes = text.getBytes("UTF-8");

return bytes;

}

public static void main(String[] args){

try{

System.out.println("ORIGIN STRING: hello world");

byte[] byteArray = TransCode.transcode("hello world");

int arrLen = byteArray.length;

MessageDigest messageDigest = MessageDigest.getInstance("MD5");

messageDigest.update(byteArray);

System.out.print("BYTE ARRAY: ");

for (int i=0;i

System.out.print(byteArray[i]);

System.out.print(" ");

}

System.out.println();

byteArray = messageDigest.digest();

System.out.print("MD5 RESULT: ");

for (int i=0;i

System.out.print(byteArray[i]);

System.out.print(" ");

}

System.out.print("\n");

}

catch(Exception ex){

System.out.println(ex);

}

}

}

结果如下:

^{pr2}$

那么如何将这个标准的java代码移植到python中并得到同样的结果,下面是我写的有bug的代码:# -*- coding: utf-8 -*-

from hashlib import md5

def MD5Digest(text):

byteList = []

for item in text:

md=md5()

unit = str(ord(item))

print unit,

md.update(unit)

byteList.append(md.hexdigest())

print

return byteList

print MD5Digest(u"hello world".encode("UTF8"))

结果如下:104 101 108 108 111 32 119 111 114 108 100

['c9e1074f5b3f9fc8ea15d152add07294', '38b3eff8baf56627478ec76a704e9b52', 'a3c65c2974270fd093ee8a9bf8ae7d0b', 'a3c65c2974270fd093ee8a9bf8ae7d0b', '698d51a19d8a121ce581499d7b701668', '6364d3f0f495b6ab9dcf8d3b5c6e0b01', '07e1cd7dca89a1678042477183b7ac3f', '698d51a19d8a121ce581499d7b701668', '5fd0b37cd7dbbb00f97ba6ce92bf5add', 'a3c65c2974270fd093ee8a9bf8ae7d0b', 'f899139df5e1059396431415e770c6dd']

您可以看到,尽管字节码的结果看起来是相同的,但是MD5加密结果却完全不同。在

请帮我重写python代码进行调试,谢谢。

由于项目原因,在我的python项目中仅仅引用这段java代码是不允许的,请理解。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值