Php md5 不同于 python

Php md5 different from python

我正在尝试在 php 和 python 中获取 md5,但我不确定为什么结果不同,我已经阅读了其他关于散列字符串的问题但没有文件,我也尝试过 echo -n 但出现语法错误。

Php:

<?php
  echo 'MD5 file hash : ' . md5_file('https://cdn4.buysellads.net/uu/1/8026/1533152372-laptop_purple_graph.png');
?>

MD5 file hash : 5e81ca561d2c1e96b5e7a2e57244c8e5

python:

import hashlib

m=hashlib.md5('https://cdn4.buysellads.net/uu/1/8026/1533152372-laptop_purple_graph.png')
print('The MD5 checksum is',m.hexdigest())

MD5 file hash : 52e8e2e35519e8f6da474c5e1dc6d258

在 Python 代码段中,您正在散列 https://cdn4.buysellads.net/uu/1/8026/1533152372-laptop_purple_graph.png 字符串,我猜它与内容不同。

您需要先获取 url 内容并将其传递给 hashlib.md5:

import urllib.request
import hashlib

contents = urllib.request.urlopen("https://cdn4.buysellads.net/uu/1/8026/1533152372-laptop_purple_graph.png").read()

m = hashlib.md5(content)
print('The MD5 checksum is',m.hexdigest())