{"id":132,"date":"2013-06-24T10:16:16","date_gmt":"2013-06-24T09:16:16","guid":{"rendered":"http:\/\/jjtronics.com\/wordpress\/?p=132"},"modified":"2016-11-09T15:56:38","modified_gmt":"2016-11-09T14:56:38","slug":"convertir-un-guid-en-base-64","status":"publish","type":"post","link":"https:\/\/www.jjtronics.com\/wordpress\/2013\/06\/24\/convertir-un-guid-en-base-64\/","title":{"rendered":"Convertir un GUID en Base 64"},"content":{"rendered":"<p>Certains h\u00e9bergeurs demandent de renseigner le GUID en Base 64,<\/p>\n<p>Si l&rsquo;on inspecte les requettes envoy\u00e9s par le navigateur l&rsquo;ors de l&rsquo;ouverture d&rsquo;un fichier smooth streaming DRMiz\u00e9, on peux trouver le GUID en Base 64.<\/p>\n<p>Maintenant comment le convertir \u00ab\u00a0simplement\u00a0\u00bb ?<\/p>\n<p>Tout d&rsquo;abord il faut inverses les bits de poids faible avant de faire la conversion en base 64.<\/p>\n<p>Prenons l&rsquo;exemple :\u00a093c6cea6-d968-9b34-8dd7-359ae15a6cb5<\/p>\n<p>Inversons maintenant les bits de poids faible :\u00a0a6cec693-68d9-349b-8dd7-359ae15a6cb5<\/p>\n<p>Passons maintenant le nouveau GUID dans la moulinette PHP :<\/p>\n<pre class=\"lang:default decode:true \">$guid = '9ccf5662-f8e6-0e54-15e7-e4c25979c84a';\r\n  \r\n    \/\/ Il faut inverser les bits de poids faible (=&gt; bloc par bloc sur les 3 premiers blocs) avant de faire la conversion en 64bits \r\n    \/\/ Ex :\r\n    \/\/      93c6cea6-d968-9b34-8dd7-359ae15a6cb5\r\n    \/\/   =&gt; a6cec693-68d9-349b-8dd7-359ae15a6cb5\r\n      $uuid = explode('-', $guid);\r\n        for ($i=0;$i&lt;3;$i++) {\r\n          $tmp = str_split($uuid[$i], 2);\r\n          $tmp = array_reverse($tmp);\r\n          $uuid[$i] = implode('', $tmp);\r\n        }\r\n      $uuid = implode('-', $uuid);\r\n    $reversed_guid = $uuid;\r\n    \r\n    $uuid = str_replace(\"-\", \"\", $uuid);\r\n\r\n    $packed = pack('H*', $uuid);\r\n    $base64Encoded = base64_encode($packed);\r\n  \r\n    echo \"guid depart : {$guid}&lt;br&gt;\";\r\n    echo \"guid invers : {$reversed_guid}&lt;br&gt;\";\r\n    echo \"KeyID : {$base64Encoded}&lt;br&gt;\";\r\n  die();<\/pre>\n<p>&nbsp;<\/p>\n<p>Ce qui nous retourne bien :<\/p>\n<p>guid depart : 9ccf5662-f8e6-0e54-15e7-e4c25979c84a<\/p>\n<p>guid invers : 6256cf9c-e6f8-540e-15e7-e4c25979c84a<\/p>\n<p>KeyID : YlbPnOb4VA4V5+TCWXnISg==<\/p>\n<p>&nbsp;<\/p>\n<p>Vous pouvez \u00e9galement utiliser l&rsquo;outil :<\/p>\n<p><a href=\"http:\/\/guid-convert.appspot.com\/\">http:\/\/guid-convert.appspot.com\/<\/a><\/p>\n<p>Test\u00e9 et approuv\u00e9 !!!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Certains h\u00e9bergeurs demandent de renseigner le GUID en Base 64, Si l&rsquo;on inspecte les requettes envoy\u00e9s par le navigateur l&rsquo;ors [&#038;hellip<\/p>\n","protected":false},"author":1,"featured_media":240,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[25,26,16,3],"tags":[59,47,49,48,58,61,62,72,71,100,91,74,56,52,50,51,80,81,70,69,111],"class_list":["post-132","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-drmisation","category-smooth-streaming","category-solutions-ms","category-video","tag-base-64","tag-drm","tag-drmisation-2","tag-drmization","tag-guid","tag-keyid","tag-keyseed","tag-keyseedvalue","tag-licenseacquisitionurl","tag-o","tag-os-x","tag-playready","tag-smil","tag-smooth","tag-smooth-streaming-2","tag-smoothstreaming","tag-stream","tag-streaming","tag-transform-manager","tag-video-2","tag-x"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2013\/06\/mathematiques1.jpg","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6YUVZ-28","jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/posts\/132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/comments?post=132"}],"version-history":[{"count":9,"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/posts\/132\/revisions"}],"predecessor-version":[{"id":702,"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/posts\/132\/revisions\/702"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/media\/240"}],"wp:attachment":[{"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/media?parent=132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/categories?post=132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/tags?post=132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}