2017-10-18 102 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]'而不是你的名單得到。 –