如何使用python获得字符串的MD5和?

Flickr API文档中,你需要找到一个字符串的MD5和来生成[api_sig]值。

如何从字符串中生成MD5和?

Flickr的例子:

字符串:000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite

MD5和:a02506b31c1cd46c2e0b6380fb94eb3d

438514 次浏览

你试过在hashlib中使用MD5实现吗?注意,哈希算法通常作用于二进制数据而不是文本数据,所以在哈希之前,你可能要小心使用哪种字符编码将文本数据转换为二进制数据。

哈希的结果也是二进制数据——看起来Flickr的例子已经使用十六进制编码转换为文本。使用hashlib中的hexdigest函数来获取。

您可以执行以下操作:

Python 2. x

import hashlib
print hashlib.md5("whatever your string is").hexdigest()

Python 3. x

import hashlib
print(hashlib.md5("whatever your string is".encode('utf-8')).hexdigest())

然而,在这种情况下,你可能最好使用这个有用的Python模块来与Flickr API交互:

  • http://stuvel.eu/flickrapi < a href = " http://stuvel.eu/flickrapi " > < / >

... 它将为您处理身份验证。

hashlib的官方文档

对于Python 2。x,使用python的hashlib

import hashlib
m = hashlib.md5()
m.update("000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite")
print m.hexdigest()

输出:a02506b31c1cd46c2e0b6380fb94eb3d

Try This
import hashlib
user = input("Enter text here ")
h = hashlib.md5(user.encode())
h2 = h.hexdigest()
print(h2)

你可以试试

#python3
import hashlib
rawdata = "put your data here"
sha = hashlib.sha256(str(rawdata).encode("utf-8")).hexdigest() #For Sha256 hash
print(sha)
mdpass = hashlib.md5(str(sha).encode("utf-8")).hexdigest() #For MD5 hash
print(mdpass)

你可以使用b字符放在字符串字面值前:

import hashlib
print(hashlib.md5(b"Hello MD5").hexdigest())
print(hashlib.md5("Hello MD5".encode('utf-8')).hexdigest())

:

e5dadf6524624f79c3127e247f04b548
e5dadf6524624f79c3127e247f04b548

使用hashlib。在Python 3中使用md5。

import hashlib


source = '000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite'.encode()
md5 = hashlib.md5(source).hexdigest() # returns a str
print(md5) # a02506b31c1cd46c2e0b6380fb94eb3d

如果需要字节类型输出,请使用digest()而不是hexdigest()

简单的工具:

In [62]: import hashlib
...:
...: def make_md5(data: str) -> str:
...:     md5_value = hashlib.md5(data.encode('utf-8')).hexdigest()
...:     return md5_value
...:


In [63]:


In [63]: make_md5("123-123-123-123")
Out[63]: '779e9814651491eae36438dff100820d'

这在windows 10上很管用:

import hashlib

print(hashlib.md5("string to encode".encode('utf-8')).hexdigest())