在Flickr API文档中,您需要找到字符串的MD5和来生成[api_sig]值。
如何从字符串中生成MD5和?
Flickr的例子:
字符串:000005 fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite
MD5 sum: a02506b31c1cd46c2e0b6380fb94eb3d
在Flickr API文档中,您需要找到字符串的MD5和来生成[api_sig]值。
如何从字符串中生成MD5和?
Flickr的例子:
字符串:000005 fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite
MD5 sum: a02506b31c1cd46c2e0b6380fb94eb3d
当前回答
如果你想要得到容易做算术的结果(例如。模),你可以试试这个:
import hashlib
import struct
struct.unpack('iiii', hashlib.md5(b'hi').digest())
收益率:
(1552610889, 753701764, -2104888309, 1006379292)
其他回答
你试过在hashlib中使用MD5实现吗?请注意,哈希算法通常作用于二进制数据而不是文本数据,因此在哈希之前,您可能需要注意使用哪种字符编码将文本数据转换为二进制数据。
哈希的结果也是二进制数据——看起来Flickr的例子已经用十六进制编码转换成文本。使用hashlib中的hexdigest函数来获取。
使用hashlib。在Python 3中使用md5。
import hashlib
source = '000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite'.encode()
md5 = hashlib.md5(source).hexdigest() # returns a str
print(md5) # a02506b31c1cd46c2e0b6380fb94eb3d
如果需要字节类型输出,请使用digest()而不是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
... 它将为您处理身份验证。
hashlib的官方文档
如果你想要得到容易做算术的结果(例如。模),你可以试试这个:
import hashlib
import struct
struct.unpack('iiii', hashlib.md5(b'hi').digest())
收益率:
(1552610889, 753701764, -2104888309, 1006379292)
对于Python 2。X,使用python的hashlib
import hashlib
m = hashlib.md5()
m.update("000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite")
print m.hexdigest()
输出:a02506b31c1cd46c2e0b6380fb94eb3d