Programmation » Hash ELF en PHP
Hash ELF en PHP
Publié le 11/08/2008 @ 17:22:37,
Par zionJe dois convertir un code simplissime de pascal en PHP:
Et apparemment je me plante qqpart. Déjà avec ce le typage en PHP je rajoute quelques petits & 0xFFFFFFFF pour m'assurer que l'on reste sur 32 bits mais il me manque inévitablement quelque chose ...
- function ELFHash(const Str : String) : Cardinal;
- var
- i : Cardinal;
- x : Cardinal;
- begin
- Result := 0;
- for i := 1 to Length(Str) do
- begin
- Result := (Result shl 4) + Ord(Str[i]);
- x := Result and $F0000000;
- if (x <> 0) then
- begin
- Result := Result xor (x shr 24);
- end;
- Result := Result and (not x);
- end;
- end;
- function GenerateELF($AFile)
- {
- $result = 0;
- $i = 0;
- $x = 0;
- $str = file_get_contents($AFile);
- for ($i=0; $i<strlen($str); $i++)
- {
- $chr = $str[$i];
- $result = ($result & 0xFFFFFFF) << 4;
- $result = ($result + ord($chr)) & 0xFFFFFFFF;
- $x = $result & 0xF0000000;
- if ($x != 0)
- $result = ($result ^ ($x >> 24)) & 0xFFFFFFFF;
- $result = (int)($result & (~$x));
- }
- return $result;
- }
Et apparemment je me plante qqpart. Déjà avec ce le typage en PHP je rajoute quelques petits & 0xFFFFFFFF pour m'assurer que l'on reste sur 32 bits mais il me manque inévitablement quelque chose ...
Je suis le Roy
Hash ELF en PHP
Publié le 11/08/2008 @ 18:28:15,
Par zionTrouvé, c'est le $x >> 24 qui pose soucis vu que PHP traitant tout comme du signed, si on arrive en négatif le signe est récupéré à chaque >>...
Donc avec un : (($x >> 24) & 0x000000FF)
Ca roule!
Donc avec un : (($x >> 24) & 0x000000FF)
Ca roule!
Je suis le Roy
Hash ELF en PHP
Publié le 11/08/2008 @ 18:35:17,
Par ovhPHP traitant tout comme du signed
P'tain c'est bon à savoir ça
Merci pour l'info
Je n'ai rien à voir avec www.ovh.com
Hash ELF en PHP
Publié le 11/08/2008 @ 18:52:46,
Par zionL'unsigned n'existe pas en PHP
Encore une nouvelle raison de moins en faire
Encore une nouvelle raison de moins en faire
Je suis le Roy
Se connecter
Inscription
Mot de passe perdu
Liste des catégories
Qui a lu ce topic?
Répondre
Version imprimable
Activer la notification