Ответ 1
Для Python 2.x используйте python hashlib
import hashlib
m = hashlib.md5()
m.update("000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite")
print m.hexdigest()
Выход: a02506b31c1cd46c2e0b6380fb94eb3d
В Документах Flickr API вам нужно найти сумму MD5 строки для генерации значения [api_sig]
.
Как сделать вывод о сумме MD5 из строки?
Пример Flickr:
string: 000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite
Сумма MD5: a02506b31c1cd46c2e0b6380fb94eb3d
Для Python 2.x используйте python hashlib
import hashlib
m = hashlib.md5()
m.update("000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite")
print m.hexdigest()
Выход: a02506b31c1cd46c2e0b6380fb94eb3d
Вы можете сделать следующее:
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 для взаимодействия с API Flickr:
... который будет обрабатывать аутентификацию для вас.
Официальная документация hashlib
Вы пытались использовать реализацию MD5 в hashlib? Обратите внимание, что алгоритмы хэширования обычно действуют на двоичные данные, а не на текстовые данные, поэтому вы можете быть осторожны, какая кодировка символов используется для преобразования из текста в двоичные данные перед хешированием.
Результат хэша также является двоичным данным - похоже, что пример Flickr был преобразован в текст с использованием шестнадцатеричной кодировки. Используйте функцию hexdigest
в hashlib, чтобы получить это.
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)
Python:
from Crypto.Hash import MD5
h = MD5.new()
h.update(bytearray("any of your string"))
print h.hexdigest()`
Это дает сумму входной строки md5.
Nodejs:
var crypto = require('crypto');
var s = "any of your string";
var md5 = crypto.createHash('md5').update(s).digest('hex');
console.log("hash means",md5);
Это код для md5 sum в nodejs usecase.
Спасибо pycrypto, которые обеспечивают простой способ как одностороннего (хеширования), так и двухстороннего шифрования
from Crypto.Hash import MD5
from Crypto.Cipher import AES
Более полная простая функция при посещении python http://developer.e-power.com.kh/one-way-vs-two-way-encryption