{"id":638,"date":"2011-07-27T12:05:31","date_gmt":"2011-07-27T10:05:31","guid":{"rendered":"http:\/\/blog.kodono.info\/wordpress\/?p=638"},"modified":"2014-09-19T17:36:55","modified_gmt":"2014-09-19T15:36:55","slug":"midi-code-encoder-decoder-en-base64-pour-javascript-programmation","status":"publish","type":"post","link":"https:\/\/blog.kodono.info\/wordpress\/2011\/07\/27\/midi-code-encoder-decoder-en-base64-pour-javascript-programmation\/","title":{"rendered":"Mini code Encoder\/Decoder en Base64 pour Javascript [programmation]"},"content":{"rendered":"<p>[niveau d\u00e9butant]<\/p>\n<p>Il existe plusieurs scripts sur le Net pour encoder\/decoder en Base64 avec Javascript, mais c&#8217;est sur <a href=\"http:\/\/140byt.es\/\">http:\/\/140byt.es\/<\/a> que j&#8217;ai trouv\u00e9 les plus courts, car ils font moins de 140 caract\u00e8res !<br \/>\nCependant, je les ai modifi\u00e9 l\u00e9g\u00e8rement pour qu&#8217;ils fonctionnent avec IE7 (et plus vieux) :<\/p>\n<div class=\"code script\">\n<pre class=\"js\">\r\nfunction b64_decode(d,b,c,u,r,q,x){b=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/\";for(r=q=x='';c=d.charAt(x++);~c&#038;&(u=q%4?u*64+c:c,q++%4)?r+=String.fromCharCode(255&#038;u>>(-2*q&#038;6)):0)c=b.indexOf(c);return r}\r\nfunction b64_encode(a,b,c,d,e,f){b=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/\";c=\"=\";for(d=f='';e&#038;=3,a.charAt(d++)||(b='=',e);f+=b.charAt(63&#038;c>>++e*2))c=c<<8|a.charCodeAt(d-=!e);return f}<\/pre>\n<\/div>\n<p>Soit un <strong>total de 436 bytes<\/strong> pour les deux fonctions.<\/p>\n<p>Pour l'utiliser :<\/p>\n<div class=\"code script\">\n<pre class=\"js\">alert(decode_b64(encode_b64(\"foobar\")));<\/pre>\n<\/div>\n<p>A noter qu'il existe aussi <a href=\"https:\/\/developer.mozilla.org\/fr\/docs\/DOM\/window.btoa\">window.btoa()<\/a> qui fait pareil, mais qui <a href=\"http:\/\/caniuse.com\/#search=btoa\">n'est disponible qu'\u00e0 partir de IE10<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[niveau d\u00e9butant] Il existe plusieurs scripts sur le Net pour encoder\/decoder en Base64 avec Javascript, mais c&#8217;est sur http:\/\/140byt.es\/ que j&#8217;ai trouv\u00e9 les plus courts, car ils font moins de 140 caract\u00e8res ! Cependant, je les ai modifi\u00e9 l\u00e9g\u00e8rement pour qu&#8217;ils fonctionnent avec IE7 (et plus vieux) : function b64_decode(d,b,c,u,r,q,x){b=&#8221;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/&#8221;;for(r=q=x=&#8221;;c=d.charAt(x++);~c&#038;&#038;(u=q%4?u*64+c:c,q++%4)?r+=String.fromCharCode(255&#038;u>>(-2*q&#038;6)):0)c=b.indexOf(c);return r} function b64_encode(a,b,c,d,e,f){b=&#8221;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/&#8221;;c=&#8221;=&#8221;;for(d=f=&#8221;;e&#038;=3,a.charAt(d++)||(b=&#8217;=&#8217;,e);f+=b.charAt(63&#038;c>>++e*2))c=c<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","hide_page_title":"","footnotes":""},"categories":[11,33],"tags":[24,151,158],"class_list":["post-638","post","type-post","status-publish","format-standard","hentry","category-niveau-debutant","category-programmation","tag-javascript","tag-niveau-debutant","tag-programmation"],"_links":{"self":[{"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/posts\/638","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/comments?post=638"}],"version-history":[{"count":10,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/posts\/638\/revisions"}],"predecessor-version":[{"id":1414,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/posts\/638\/revisions\/1414"}],"wp:attachment":[{"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/media?parent=638"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/categories?post=638"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/tags?post=638"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}