[PHP/MySQL] SHA1 van 64-bit integer (binair)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Ik wil van een binaire string van 28 bytes de sha1 waarde berekenen. De string bestaat uit twee delen, een van 20 en een van 8 bytes.
Met de volgende code kan het voor 24 bytes, maar ik wil een 64-bit torrent_pass_secret hebben.
Omdat PHP geen 64-bit integers kent wilde ik het met MySQL doen, maar hoe krijg ik MySQL zo ver dat die van de binaire representatie van de integer de sha1 neemt en niet van de tekst representatie?

PHP:
1
2
3
4
5
6
$info_hash = '5517e71cdc332e7e0bde568e1ba6b9cb4e6a206c';
$torrent_pass_secret = 0;
$s = pack('H*', $info_hash) . pack('L', $torrent_pass_secret);
echo(bin2hex($s));
echo('<br>');
echo(sha1($s));

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Met de volgende code is het gelukt. In PHP wordt het gewoon als hex string behandeld en niet meer als integer.

SQL:
1
SELECT lpad( hex( torrent_pass_secret ) , 16, 0 )