Blog de ILINFO

Trucs et astuces

Blog ILINFO Active DIrectory MIIS LDAP ADAM PCA PRA BCP DRP

Log in

Binarywriter between PHP and C# DOTNET

by Emmanuel Dreux octobre 28, 2010 18:05

Problématique du jour:

Comment générer en PHP l'équivalent de ce que produit la classe DOTNET BinaryWriter ?

        private static void WriteTofile(string blob, string filename)
        {
            using (FileStream stream = new FileStream(filename, FileMode.Create))
            {
                using (BinaryWriter writer = new BinaryWriter(stream))
                {
                    writer.Write(blob);
                    writer.Close();
                }
            }
        }

Lorsque vous regardez avec un éditeur hexadécimal le résultat obtenu, vous notez que 2 octets sont rajoutés en début de chaine.

Ainsi, pour une chaine de longueur 460, le fichier commence par CC03.

Il faut l'interpréter de la façon suivante: "CC01" + 2, 2 étant le nombre d'octets rajoutés.

CC01 inversé donne 01CC qui est la valeur hexadécimale de 460.

 

Il ne reste plus qu'à implémenter cette fonction en PHP.

 N'étant pas un expert en PHP, je l'ai implémenté de la façon suivante.

Il y a probablement plus simple, mais toujours est-il que l'exemple suivante fonctionne:

<?php

function hex2bin($str) {
    $build = '';
    while(strlen($str) > 1) {
        $build .= chr(hexdec(substr($str, 0, 2)));
        $str = substr($str, 2, strlen($str)-2);
    }
    return $build;
}


$Result = "H1FZt3ZEFwP+9bLvjLnIqQAjaM3wk0BxMZ1RFpSoKDXV1xaUPjL3obdx2";


$val = pack("v",strlen($Result));
 echo hex2bin(dechex(hexdec(bin2hex($val)) +2)).$Result;
?>

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Développement

Partenaires
Assurez votre plan de continuit� d'activit� avec BCPAnywhere
Votre poste de travail partout dans le monde.

Mig6 votre solution de migration de vos postes de travail vers Windows 7
Migrez de XP vers Windows 7 avec Mig6.

Auteur

Freelance, Indépendant, expert Active Directory, Domaine et Sécurité.

Expert MIIS, ILM, FIM 2010,Kerberos, NTLM, SSL, PKI et chiffrement.