Задать вопрос
@dacdacdac1

Python md5 hash не совпадает?

Всем привет.
Есть своеобразный код на php:
$salt = "21x1231";
$code = file_get_contetns('api...');
$code = json_decode($code, true);
$token = $code->token;

$hash = strtolower(md5($token.salt)); 
$data = file_get_contents('url?param='.$token.'&tok='.$hash);


переписано на python:

import hashlib
import urllib
import json

salt = "21x1231".encode()
code_request = urllib.request.urlopen('api..').read()
code = json.loads(code_request)
hash = hashlib.md5(code['token'].encode() + salt).hexdigest()
rq = urllib.request.urlopen("api?param=%s&tok=%s" % (code['token'], hash.lower())).read()


Но возвращает сообщение, что хеш не совпадает. Хотя на php аналогичный код - работает, данные все приходят как надо (посмотрел в дебаге), проблема с хешем или с последним запросом где передается он в url, в чем проблема может быть?
  • Вопрос задан
  • 638 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 1
DevMan
@DevMan
php-код полный треш, который вообще не работает:
  • json_decode($code, true) возвращает массив, но $code->token обращаемся к нему как к объекту.
  • $token.salt это вообще что?
$salt = "21x1231";
$code = file_get_contetns('api...');
$code = json_decode($code);
$token = $code->token;

$hash = strtolower(md5($token.$salt)); 
$data = file_get_contents('url?param='.$token.'&tok='.$hash);


php - https://ideone.com/OAzxQ1
python - https://ideone.com/sQtDLp
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
VladimirAndreev
@VladimirAndreev
php web dev
В md5 один аргумент в обоих случаях передаётся?
Ответ написан
@lega
Ваш код делает разные вещи, сделайте аналогичный алгоритм - будет одинаковый результат, md5 не причем
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы