在Flickr API文档中,你需要找到一个字符串的MD5和来生成[api_sig]值。
[api_sig]
如何从字符串中生成MD5和?
Flickr的例子:
字符串:000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite
000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite
MD5和:a02506b31c1cd46c2e0b6380fb94eb3d
a02506b31c1cd46c2e0b6380fb94eb3d
你试过在hashlib中使用MD5实现吗?注意,哈希算法通常作用于二进制数据而不是文本数据,所以在哈希之前,你可能要小心使用哪种字符编码将文本数据转换为二进制数据。
哈希的结果也是二进制数据——看起来Flickr的例子已经使用十六进制编码转换为文本。使用hashlib中的hexdigest函数来获取。
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交互:
... 它将为您处理身份验证。
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字符放在字符串字面值前:
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()。
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())
import hashlib
print(hashlib.md5("string to encode".encode('utf-8')).hexdigest())