비트 토런트 정보 해시를베이스 32에서 기본 16으로 변환하는 방법
-
12-12-2019 - |
문제
Base32 Info Hash가 있습니다.예를 들어,IXE2K3JMCPUZWTW3YQZZOIB5XD6KZIEQ
, 그리고 그것을 base16으로 변환해야합니다.
PHP로 어떻게 할 수 있습니까?
내 코드는 다음과 같습니다 :
$hash32=strtolower($hash32);
echo $hash32; // shows - IXE2K3JMCPUZWTW3YQZZOIB5XD6KZIEQ
$hash32=sha1($hash32);
$hash16=base_convert($hash32, 32, 16);
echo "</br>";
echo $hash16 // shows - 3ee5e7325a282c56fe2011125e0492f6ffbcd467
.
내 코드에서 16 기반 정보 해시가 유효하지 않습니다 ..
유효한 정보 해시는 45C9A56D2C13E99B4EDBC43397203DB8FCACA090
입니다.
유효한 정보 해시를 어떻게 얻을 수 있습니까?
감사합니다
해결책
이 함수는 여기
기본 32 알파벳 는 다음과 같습니다. gmp_strval(gmp_init(strtoupper($hash32), 32), 16);
.
$hash32='IXE2K3JMCPUZWTW3YQZZOIB5XD6KZIEQ';
$hash16=convBase($hash32, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567', '0123456789ABCDEF');
//$hash16='45C9A56D2C13E99B4EDBC43397203DB8FCACA090'
여기서 문제는 ABCDEFGHIJKLMNOPQRSTUVWXYZ234567
가 큰 숫자를 mishandle으로 만듭니다.
제휴하지 않습니다 StackOverflow