2017-10-18 121 views
0

我知道有在Python hashlib,但我想达到相同的结果如下围棋:如何计算Python字符串的MD5为“加密/ MD5”类似于围棋

package main 

import (
    "crypto/md5" 
    "fmt" 
) 

func main() { 
    data := []byte("12345") 
    fmt.Println("sum ", md5.Sum(data)) 
} 

由于func md5.Sum如上所述,它计算“数据的MD5校验和”。 但是,我在Python中找不到任何类似的函数。

有没有什么办法可以像Python一样在Python中实现md5.Sum

上述程序的输出是不是字符串其他片:

sum [32 44 185 98 172 89 7 91 150 75 7 21 45 35 75 112] 
+3

请参阅https://stackoverflow.com/questions/5297448/how-to-get-md5-sum-of-a-string – Polymer

+0

thx,我已经看到,它不能为数据做md5.sum – user3342796

+1

这里是一行:从hashlib import md5; print(md5(b'12345')。hexdigest())'。输出:'827ccb0eea8a706c4c34a16891f84e7b'。如果你做'echo -n'12345'| md5sum'在Bash中获得相同的输出。 –

回答

0

基于PM 2Ring的解决方案,这里是一个工作程序,

from hashlib import md5 

hexv = md5(b'12345').hexdigest() 
l = [str(int(i+j,16)) for i, j in zip(hexv[::2], hexv[1::2])] 
print("sum [" + ", ".join(l)+"]") 

这版画,

sum [130, 124, 203, 14, 234, 138, 112, 108, 76, 52, 161, 104, 145, 248, 78, 123] 
+1

有一个更简单的方法来做这种转换!只需将由'md5'返回的'bytes'转换为一个列表,如下所示:'list(md5(b'12345')。digest())',或者在Python 2'list(bytearray(md5(b'12345' ).digest()))'。 FWIW,我没有发表完整的答案,因为我正在等待OP澄清他们为什么得到'[32 44 185 98 172 89 7 91 150 75 7 21 45 35 75 112]'而不是你的名单得到。 –