Convertir un GUID en Base 64

24 Juin 2013 par jj, Pas de commentaire »

Certains hébergeurs demandent de renseigner le GUID en Base 64,

Si l’on inspecte les requettes envoyés par le navigateur l’ors de l’ouverture d’un fichier smooth streaming DRMizé, on peux trouver le GUID en Base 64.

Maintenant comment le convertir « simplement » ?

Tout d’abord il faut inverses les bits de poids faible avant de faire la conversion en base 64.

Prenons l’exemple : 93c6cea6-d968-9b34-8dd7-359ae15a6cb5

Inversons maintenant les bits de poids faible : a6cec693-68d9-349b-8dd7-359ae15a6cb5

Passons maintenant le nouveau GUID dans la moulinette PHP :

$guid = '9ccf5662-f8e6-0e54-15e7-e4c25979c84a';
  
    // Il faut inverser les bits de poids faible (=> bloc par bloc sur les 3 premiers blocs) avant de faire la conversion en 64bits 
    // Ex :
    //      93c6cea6-d968-9b34-8dd7-359ae15a6cb5
    //   => a6cec693-68d9-349b-8dd7-359ae15a6cb5
      $uuid = explode('-', $guid);
        for ($i=0;$i<3;$i++) {
          $tmp = str_split($uuid[$i], 2);
          $tmp = array_reverse($tmp);
          $uuid[$i] = implode('', $tmp);
        }
      $uuid = implode('-', $uuid);
    $reversed_guid = $uuid;
    
    $uuid = str_replace("-", "", $uuid);

    $packed = pack('H*', $uuid);
    $base64Encoded = base64_encode($packed);
  
    echo "guid depart : {$guid}<br>";
    echo "guid invers : {$reversed_guid}<br>";
    echo "KeyID : {$base64Encoded}<br>";
  die();

 

Ce qui nous retourne bien :

guid depart : 9ccf5662-f8e6-0e54-15e7-e4c25979c84a

guid invers : 6256cf9c-e6f8-540e-15e7-e4c25979c84a

KeyID : YlbPnOb4VA4V5+TCWXnISg==

 

Vous pouvez également utiliser l’outil :

http://guid-convert.appspot.com/

Testé et approuvé !!!

Étiquettes : , , , , , , , , , , , , , , , , , , , ,

Réagissez

Suivez moi !

Follow Me! Follow Me! Follow Me! Follow Me!

Chercher