PHP en fonction de hachage qui renvoie un entier (32 bits int)
Le but est de stocker le hash sur une base de données mysql à l'aide de INT (pas de type BIGINT ou MEDIUMINT).
md5('string', true)
renvoie les données binaires, 16 octets de hachage. Je pensais que je pouvais grep les 4 premiers octets et les convertir en INT(32 bits/4 octets) entier, mais je ne sais pas comment le faire.
Que proposez-vous? Merci.
$int = bindec(substr(md5('string', true),0,4))
ou $int = hexdec(substr(md5('string'),0,8))
- mais, de manière assez évidente, cela ne permet pas de stocker l'ensemble de hachage, seuls les 4 premiers octets.Puis-je vous demander, ce qui se passe pour être un "hash" but?
bindec
ne fonctionne pas (hexdec
n').en effet, il ne fonctionne pas - pourquoi?
Est-ce que l'INT dans votre MySQL signé ou non signé?
OriginalL'auteur cedivad | 2011-12-15
Vous devez vous connecter pour publier un commentaire.
Ou:
Mais Filip Roséen la solution est préférable.
OriginalL'auteur Evert
Utilisation
crc32
, il sera de retour une 32bitint
.sortie
PHP: crc32 - Manuel
OriginalL'auteur Filip Roséen - refp
Une autre alternative est d'utiliser une carte de lier votre hachage entier, comme le Redis.
L43F34FLK34FL3K4 ==> 1
LKZLCKCLK32 ==> 2
etc....
OriginalL'auteur Thomas Decaux
Ici est Daniel J. Bernstein de hachage qui renvoie un entier 32 bits.
OriginalL'auteur Semra