Python binascii.crc32 () в PHP crc ()

У меня есть эта строка Python, которую я хочу преобразовать в PHP

code = '%08x' % (binascii.crc32(summ) & 0xffffffffL)

Как я понимаю, php эквивалент binascii.crc32 является crc32() и я могу ошибаться, но 0xffffffffL делает целое число со знаком положительным, поэтому я бы использовал abs()

Я пробовал это, но я не получаю вывод даже сообщение об ошибке

$code = '%08x' % abs(crc($summ));

Как правильно получить вывод Python, но с использованием php?

ОБНОВИТЬ:

Я сейчас создал и запустил скрипт Python, а также эквивалент PHP, и вывод немного отключен.

питон

import binascii

file = open("test.json","r")
source = file.read()

key1 = 'Y3xFZ4'
key2 = 'ABC123'

summ = bytes(source + key1 + key2, encoding='utf-8')

print (binascii.crc32(summ))

code = '%08x' % (binascii.crc32(summ) & 0xfffffff)

print (code)

file.close()

Выход

2416307871 0005ee9f

PHP

$json = '{ "name":"John", "age":30, "car":null }';

$summ = $json . 'Y3xFZ4' . 'ABC123';

$test = sprintf("%u", crc32($summ));

$code = dechex((float) $test);

echo $test . ' ' . $code;

Выход

2416307871 9005ee9f

Что может быть причиной разницы в начале финального вывода

0

Решение

Ваш & 0xfffffff отсутствует f,

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector