• 8 bitlik datayi e-mail'den rahatca gonderilebilsin diye 6-bit'lik e$leniklerine cevirip gondermeyi saglayan encoding standardi.. her 3 byte'lik grup 4 byte'lik gruplara cevrilir output'a yazilir.. (bkz: mime)'da e-mail attachment'larinda kullanilir..
  • proxy authentication'da da kullanıcı ve şifreyi belirtmekte kullanılan kod standardı
  • xml'de de binary data encoding'i icin tavsiye edilen ve hatta kullanilan standarttir.. uuencode'u tarihe gommu$tur..

    mime desteklidir..
  • total commander ile encode/decode edilebilmekte bunlar.
  • .net framework'te bir byte array'i base64 encoded string'e cevirmek icin s = convert.tobase64string(b); gibi bir statement yeterlidir.
  • aib'ın da belirttiği gibi, bu format yalnızca metin içeren bir kod standardıdır; yani hiç boşluk vs yoktur.

    örneğin, izmir'deki asansör'ün, jpeg formatında kaydedilmiş bir fotoğrafının base64 kodlanmış hali şöyledir:
    (edit: bu standard için büyük ve küçük harfler kullanılıyor. 386dx uyarana kadar (teşekkürlerimle 386dx) farkına varmamıştım lakin, yapıştırıp geçmişim ve herşey küçük harf olmuş haliyle. aşağıda büyük harfleri "|+harfin_küçüğü" şeklinde ifade etmek durumunda kaldım.
    resmi düzgün şekilde görüntüleyebilmek için tam tersi işlemi yapmak gerekiyor. olaya yataklık eden php kaynak kodunu da altta veriyorum.)

    <base64>/9j/4|a|a|q|sk|z|j|rg|a|b|a|q|a|a|a|q|a|b|a|a|d/2w|b|d|a|a|y|e|b|q|y|f|b|a|y|g|b|q|y|h|bw|y|i|ch|a|k|cgk|j|ch|q|o|dww|q|fx|q|y|g|bc|u|fh|ya|h|s|uf|ghsj|h|b|y|w|i|cwg|iy|yn|k|sop|g|r8t|m|c0o|m|c|uo|k|sj/2w|b|d|a|qc|h|bwo|i|ch|m|k|ch|mo|gh|ya|k|cgo|k|cgo|k|cgo|k|cgo|k|cgo|k|cgo|k|cgo|k|cgo|k|cgo|k|cgo|k|cgo|k|cgo|k|cgo|k|cgo|k|cgo|k|cgo|k|cj/w|a|a|r|c|a|b4|a|g|q|d|a|s|i|a|ah|e|b|ax|e|b/8|q|a|hw|a|a|a|q|u|b|a|q|e|b|a|q|e|a|a|a|a|a|a|a|a|a|a|a|e|c|aw|q|f|bgc|i|c|qo|l/8|q|at|r|a|a|ag|e|d|aw|i|e|aw|u|f|b|a|q|a|a|a|f9|a|q|i|d|a|a|q|r|b|r|ih|m|u|e|g|e1|fh|by|jx|f|d|k|bka|e|i|i0|kxw|r|v|s0f|ak|m2|jyggk|k|fhc|y|g|rol|jico|k|so0|n|t|y3|o|dk6|q0|r|f|rkd|i|s|up|t|v|f|v|w|v1h|z|wm|nk|z|w|zna|glqc3|r1dnd4e|xq|dh|i|w|gh4i|jip|k|tl|j|w|wl5i|zmq|kjp|k|wmp6ipqr|kzt|l|w2t7i5us|l|dx|m|x|gx8j|jyt|l|t1|n|x|w19j|z2u|hi4+|tl5ufo6erx8v|p09fb3+|pn6/8|q|a|hw|e|a|aw|e|b|a|q|e|b|a|q|e|b|a|q|a|a|a|a|a|a|a|a|e|c|aw|q|f|bgc|i|c|qo|l/8|q|at|r|e|a|ag|e|c|b|a|q|d|b|ac|f|b|a|q|a|a|q|j3|a|a|e|c|ax|e|e|b|s|ex|bh|j|b|u|qdhc|r|mi|mo|e|i|f|e|k|rob|h|b|c|s|mz|uv|a|v|yn|l|r|ch|yk|n|o|el8|rc|y|g|rom|jygp|kj|u2|nzg5|ok|n|e|r|u|z|h|s|el|k|u1|r|v|vld|y|w|vpj|z|g|vm|z2hpan|n0d|x|z3e|hl6go|o|eh|ya|hi|im|kkp|o|ul|za|xm|jmaoq|okpaanq|kmqsr|o0tba3u|lm6ws|p|excb|hy|mn|k0t|p|u1db|x2|nna4u|pk5ebn6|onq8v|p09fb3+|pn6/9o|a|d|a|m|b|a|a|i|r|ax|e|a|pw|d1|j4y|rk|gool|ktn|b|p0q6|ui|yf|jk|h65qza|w|mc33z/|a|oy16|tl|y5l|g7|k0|kg4q|v|vy|q|p|wr8en2m7|yxc|n/v1owafp|w0|j|i|zcj/br|o|v|r|fq|bmr|z|f|q|c|g/|m|v|l|gw|x7w|jx/d|nb1ub|g|k|n|y|t8y|l8w|zzu|i/|gm|x|m|wms|h|z|y|i|gf|h|azt|d|gsva|x0a|l5|t|ebaw6|p|vdg|u|p|p|t6|vbmtk|i|l7h|a/oh3|cs9m2y|yk|i|i|het|ikv|qjdlz3/|oqsqr71|yl|iy|srpg1|dlc|voi|giq23sa|qhv4c|v|k|q|a3|az|q|z|cvar|f|yi2v8|a3f0op|t|i/900|ux|f+z0|s4m|r|z|ek|u|ajj|lc/981pwa|rc|q43|x|c/w|d|a|vr|d|xx|z|jj91|gg492q|o|tx|ndynq|b/w|gsn|cq9y1|kmtjons7jdh|z|u|i77m2mq09pd+|y21xs|a6sc1zzar|mz|esz|u06s69|hamq|ugd|s|jvm|od|vxln+l|rqyg4l80e/z|vzrat|kx+8fzp|rq|vwf42q/|z|nbke0|t2|okne2|c/|j5mf4i+6q|tv|e|p4j+|f|zv8|aa|vwwwz5+t|ibtm|h|kih|qs|nz|t|lr|s|k|rjc9|qt|i|a3cj61|qaf72a|s|vyj|fep|hy1|vi|oa5e81c/|n0o|nyv|zay|xu0|db|cyh9u7bn5tv8|au1|a+o2qhw1z|bu|x7y+|yuaf|i|n|s|ztef9|k|k5pdcs|w|a|k|x|s|e|h0|boqv|zvs|f2|u|v1|ofjm|l5f9hacuoy/|lko3/|a|a|bawf|pbv|srct/erud|jdj|f|m311|f+6p/3x|usd6|m5|ma|e/7l|y|k|x|j/v|l|u0dy|w+|vfv|v|dpl|j|g8|lx|z|bj|yg+q|v|it0|qw3|s|q4zz8m2se|o|vyvz|mt|w|bv|k9|vr|g|s|s|l|s|n|k3ubp5ys|e|md4g++oiy|e|h97|ksr|k1|w9|quba20y3a1b7|tq|ujv5s|udyr|c|mfw9|p8/eqh|fe3|xk|q290|i7u1h|lv|d|fc|ju8ov1|kkb|w7/|a|n6t|p|sv|dtvqx|p9m|qvb|xs8|ty|ipk|zo|j1|qqp|ab5|xjfno4|ye5rjq|nxd5a|i3j|f|mz|h1|c3ht5|gm|gu|pc+|sxtl/d|in91|vb5v/|a|e|gs|h|u/|e|gt|xlz|m8s|p2e|w|q|k26|v|g|mj|h1z|vq4a|s5|mts|vhgk|r3|ek|cq0ez5vu7|w|zvu/71|v4|z76|u|g|c|s|ff3e18qz|rsu3b8u3+|h+9/3z|w0|glq1q|cgt4m|pq|nxf|g|c|np|z|jmv|fdm+|w3|v|v|v|nv95vm3|v|lp15q|x2u|o|k5e|k|k|n|v3|k|wj|v|y1b/aatie6gldku|ei2oskm6|vdy/71|umud|ji81|y|u|lblb+|lz|f3fw/|l|wiq|x|vn|erl10|lg0|k|s4|amci|rp|bu|lr|k|c|g9+t|f|zj|p|zli|uu|gj|u8h|f34|x2oov|lv+|a7|mzf|m|p96l8xt1|u3u|ejwc7i|qv|ab|o|g/u1sx6ep09|j|z3|tb|p8|aca|k|x5l|x/|a|gtv3|wr0|z1|yw|vzjh|tb0|kis277t|t|r|s|f|h|v|q|v3fw/|n|tls|z0d|y|t|j|j5e35|x+|zl|vdu7/dqz|za|w|lu|g|ka|s53|k6|k4|qf|n/|htrlniv|i3j|qj1k|vod|xh|ezxktuj|zl|i21f/t|e|im8kr/v|l|w|t|n|y|wtpqby|j|i7i|l5l+|vfmb7v/|a|hz|wo1y|z|ft|zbl|y|xd|j|u|qful2qjfe/hr|g|u21d|ic|y|r2|zc07x|b|zkg3|npe3|uqrua|j|bh|n277r|n97/0|gut|xxbc|qa|pr|f3o8f2|r|y|i4|e|s|s|w0/f|ro8irt3|a7dv|jw|ao9etctb3s9/ct|d|d|ittb2jv+8|s|p|g0bvl/h+|ztzf|l/6|eu2uvtt|n0|q+|h|llbq|ca|w|t|u|j|r|g8k0qi|t|ee05|rl|hy8u|p73fduriq2b943gor|q4|o|o0u|uv|cn2t|bcy/|o|z|e3|m|tub5vmar0q|w|kxp|nq|vx|l83yb0l|z|n235fmq|dx|n|y|pbe|zda|vc3|l|qhwrxtt8y|nm+6ysu3cv/|a|a|f|w/vfwt|w|l|y211cz|r2k|vp|n|l|oe|fjk|kx|l/w|c|pba2haab|t|f8|gmwq+|t|dt8q|iq/zbnjb7vzf|ky/wt|u13f|j|n/q|t|ejyur|e|r2+y|td/vfdq|t+yp7|o6ht|j4|q|gu|x2b43|w|u|bfl|vm|x5tv/jy/w|c9|wf|k|h|nubs|tx4|v+ct827b/|a|oh|vf|mtyn|zkjzsr|f|ua|lav|a3oqt+|i9a|khgu7t4|u|k|muz|hy8dq|k1u+wr|r7|l7zcurz|s9|pi2a|ej3|e|uw8q4|fzb|z3qy9v4h8392szx|bdy+cxe|w|c|ql96m3|d|kibl+4v8|au/8|a|aqgm1|c61|xymn|et04|q|b|a2|gwi7uir/|a|ar81|m8|tlbu9g+x|r|r28|u|u|aie|lbj|lburf3j/tf|l|w|tbi9|t|g|oqt1|l1h|gl47|t4j8z|c7ty/|n92t|s0db|o|m|mt55|rh|hl+|zub5|pm3fxfxf7|v|y|hh2|z1aa|nt20|b|nv8|and|wrfxw|s|r|ga|z|fb|yn3tr|n/w|cg/epy|wuo0|y2o3|gbu|y|slsl|w|khv4|vb/|a|nlqa4u|li9k|ugz|x|v28o|y4|vi7f|l97+9|vb|w|j0|e|u|a|a|ke|w0ih|z|rt|u/db7v8|a8|v|uvha|v21ez33|h2|w2|em|lhlke|e|b|p49p|t5l+|x+7|sq|tt|g6|h|fa2|zqadqks|nle3|fvs|j|dwr|ik43|k|w|zn3b|v/h+7|wnq|gvy|r2|gk|pb2s|jllha|tb|i7|mk|q851|i|a/i3|mu75v71|x/|evhm|r|n|fi/s|k0tpr|s|s|tz1a2|p|loo+|xb97zfv|n827d8tcbrxkf|s9|n|sy8y|u|wlm|fukjice|q7|x|erb|h4+9iv|jq3n|uuuv+|r6d|lkh|t2v|y3re9k1|o|g5|w7u|i|ujjlh|ko|f2qhy2|o|f/9mr|bu|la+0e/82|np|y|qjq|el8pom|zn+b5|v+b+|fq0f|bk|r|qaq|xe|e|r|xlv+7j|d7|xd1|xhd33|v+81|o1n|t|i5|gi2|g|t|t7p4o|yzb3|u|r|r|gd|e+b|y|v3ddj|nn+|lb/|a|a11|y|sfsd|l|g|g|mjzvm|mp|zv|j0q|x5|g|u|ets|u9/l/hr|m|s|x/|r1|r9xf+|p5v++|vq9|npl6l9a|r3cax|r|tl|r9tmdng|q|n/|e0q7qk/se|o|m|d7bc|r|ry|qu|wmg|q|k4|e|i/6a|l8qu|w3|lt/h+9833a6p|vot3sc|m|y|v|za|j|gf|fez|j|gqx|n|c|e|u|y|a|lc0|v|zk/s7z|g|mc1y|e|y7gp|kvszzt3|ku|djpx|r|s9p|ls|x7|g|xf8|a|e|ro/|l|cxr|g8e|h+fa7|i7f7|o6lu|i|zd|t|z5|gk3|mr|mr|dbt/w|c|a7|vp8|lwxxyv|nt34b|y|m/|lu|x726n6ap|xx|a8cp|it5pcl55|f|q|qxf7rf3|v/h/iq+|zp|xls|kryp+6|u|uu|xtnje|g|pd6j7patz|tb8|tr|gsk|tbi|f|zgzb|vb5vu7qqaur|nc|g9i+zy|r3|mjg|swr8j|m|g28|l/t|v|b|y|w|qvru|mi6|e|d|j86u3zf|mv96kp30|y+|w8ea|ox|lr|oqm|sy|s|n0|d/|z|e|k|q|l|my4j+b5ti/7|v|u5|j43srdvtq|ss3/|lqk|t|is|p8|a7|l|u|wp|q|h|n5|e|c|d|i|wd|bhfvf71|q|wh+yx|mrje|u|i|o|sn|h/j33qm|u|ok|q|u9bs6fwtq|v7omh|x|e+nz|n8t0|ea|k|vd8|eib|n3z|j93d/t|da3+1|x|qa38|s|jt|k1a|o1ud|d|rg|f|d|t|ot6z|eh1/5|z7k4/w|b181g|j|objwv|oxxxd|d|a|h|t7l|y3x|c/w|c|rnu|p|u|rx|dr7|v52rlb1/|q7|zq|ma|skl/|wh6|d|z|d|q/|f|cr|lo|m4|n7n95|aq|c|ge|nfm+|zo2+|vw|p7ybqhgu|l3|t3+y/aoridw|j4|l|w|r|b5|t|lyrc|pyj5|y|y|hf|j5ryayljhkle|x|i|k|d92|q|g|b|d7vv|k38|p+9|xba|j4y1a|r|fmv|wt9|rhg/dt9sg|r2|ib5vmk27/w|c|ffm3|vvy|s|s|mqe|jb92|r00tratpy|rz6fca|wr3|g|z|sd7r|m|awd4/w|c|ftv|i4+b|f|vpd|j|m6|t3|wr3k9z|y|q|m+ya|j1udk|gd+|h|g3+9ub5l3f|m1|s|sy|w+pf|znt|hvt|pj|e|xn|t287|n|j|h|c+|oo|yfc|x|d|l1|x|p|xd|wb|j|pfa|w0dw4a|jp|nx|v4|w|j|z17b|mbt+75al|n7n|v|c|f|o|sut|py|on0+|h|t|j|l|g|b4|n|ntbe|jk|b|v|b|kp|g|p73tu+9t/hzjt|r|x|p|x9w|i72a|p|u|l|l|t/ti|ntl82|da5|ycf|m|p|xiip17sv6szkd|pjjhh|n1d|s|mg25|u|a5|p4+9|nkms5|i|gf7|q|syuo|c|t|k2|x/w|bpdq7|v|vf8|aaap|ft|h|s|j|ptd3|f|h|f2|r|pmb/w|cv|u|ub21rk2k|w|x6r|l|ou5h/ur91a9|c|uu|v7|hl|w5l|y3/|d1480|emlah|fatp0|s74iw|u|o|h|lr97+8v/o|n|lq|wr2s|o|i|l|w|h|a27d2z5|p8|ad|h96ufiu|r|ld|h7|w7|o7tk|ozf|m|g/w|bqt3|s|daa/d|w2je|tsu|w|be|d|h8b|btz|l/w|jf8|a|py1|nly86|j|s9m+|v7|g|o8k|tt|j|i|b|i|z|x|zny+1|ru/8eqvd|x|a|fp5|ms|s|pltw|i|t5lbb/epr|boo|y5|j|ve|o|ng|q|n/|xhtr|coh|i7j|j|l|i|g6|a|vlz|s|t|oqc|it|kxu6|yf+|k|tm|j|cj|n7t|h|o4/6of|k1|z3x|ab|piu8|p8|i2q|d+|f|w|v1|se4077|lsi|e|ctu2on|ks|f2/e/4|f93/|zqp47e2bx|je3|c|tr|p|cy|l|khibfu|t|yu5y38|kq|w/irm|u|gqv3/|a|k|f1|wl|s|s|x|q57|y|w|mj|b|x|i|t+7|x|yf|df|t|z9|xuzbw|t|rwl|j|d|kz|suq|h92|f|o|bnq/|p|a7|vke|hb|ezzw32s29wd|atw|z|zlic|rm|r|f6i|l|p3j7/8|ajy11|t|w|vlp|wk|r|q|w|zkgklniu|ykm2yys|fd|w|d|s|y+|vfur8q/|l/v|v0|lbl|ry04|nzudt4|pu|lq9|n5r|n6u69u|x|v|x|ox|q+|u|v|vc7|v6ktu+7/dpni|f|n|pkku|l|kz|utq|dhme|c2|x5|af|w|x+|f|d/tf|k9|u|n|ma6it|n|ps72|sf|sb|ipt|w|u|d55|x|p8|jf/lln/vqte58|px|r|qb|n|i|p9myr8u|u|d|f|j|p8|arov8|x+996smr|p|q6m0nqci|p|ccu|sbhpri|zi|we|vp|r|k|x|j|oc7m+|y/|u80|vo51e|p5|j9|pvj|i|opi|id|d7q3c|u|v|xv|f88u55kl1|i4|r|zpdz4yq9kqvc3|hykl|s2ekf973|pt|r|r|w8/juecp|pl|gwi|tyw+9s|d+|f|bt|fa|nrey|k8dza|se|xdx8hl|o0+9|f|f|f|o|tu|t|l|y37e|s|p|w/|dwhv|il/t|n8v|g+zadwf5sf5+as|x|t|n|jnub10k|bx|h|iw|g|p4zu/hooq5|jcjk|kl|ju502ue|ft|vth|z|s|s|wpghu|y|cyz|h|cor|b+d3vjn/a|bz|v|o2|m2h|t|x|la|z|o|s+oyr|z|x|mks|e|zh8o8l|arg4|p|a|o|tx|r|r|x|n|tf|ot|tr6|iu|l|g2s|c5t|n|nh|f5v|ty7j|u|lzc|il|u/wov3mrpb|h|ql8|kz|r|x|go|olw94w|s|g8|l5|c|nt4|rl|p3|s|v6|mu7+78t|f|f|e3|z8p|wz|s|r022|k4g|m|nz|ekgk|x|d|i67lb/|zr|mk|fxoa|bg|j|ln|sxww|d|zmt|r9f40/8e|wiipjv|y|s3s|w4ru|c|w|n|z|ip0kj|y|z|vv|u|u|u|u|v|tii|t//2|q==</base64>

    <?php
    $handle = fopen("asans02.jpg", "r");
    $contents = '';
    while (!feof($handle)) {
    $contents .= fread($handle, 8192);
    }
    fclose($handle);
    function muamele($contents) {
    $res='';
    $contents=base64_encode($contents);
    for($count=0;$count<strlen($contents);$count++) {
    $char= $contents[$count];
    if(ord($char)>=65 && ord($char)<=90) {
    $char="|".strtolower($char);
    }
    $res.=$char;
    }
    return $res;
    }

    function tersmuamele($contents) {
    $res='';
    $contents=base64_encode($contents);
    for($count=0;$count<strlen($contents);$count++) {
    $char= $contents[$count];
    if($char=="|") {
    $content[$count+1]=strtoupper($char);
    $char="";
    }
    $res.=$char;
    }
    return $res;
    }
    $cont2=muamele($contents); //dosyadaki büyük harflere muamele
    echo $cont2;
    //küçük harfli base64 dosyasını olması gereken hale çevirmek için bir alltaki satırdaki yorumu kaldırmak gerekiyor.
    //echo tersmuamele($cont2);
    ?>
  • süper olay.
    (hemen anlatayım ki 6 yaşından beri base64 encode ediyorum sansınlar. :) )

    diyelim ki elimizde(büyük harfle) "abcd" diye bir stringimiz var.
    "abcd" stringi ascii olarak 65.66.67 ve 68 den oluşmakta.(hex)
    binary olarak ise bu; 0100001, 01000010, 01000011, 01000100

    şimdi bir bilgisayar olarak elimizde birler ve sıfırlar halinde 4 byte lık bir veri var. bir byte onluk sistemde(insancıl sistem, bizim kullandığımız sayı sistemi) 0 ile 255 arasında bir değere tekabul edebiliyor iken base64 ile "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789+/" şeklinde bir hede dizisi oluşturulacak. (tırnak içerisindeki karakterleri sayanlar neden base31 değil de base64 dendiğini daha rahat anlayabiliyor burada)

    başlıyoruz:
    1. ilk önce bütün elimizdeki bitleri yan yana diziyoruz:
    misal yukarıda 0100001, 01000010, 01000011, 01000100 şeklinde idi örneğimiz.
    01000001010001000100011001000100

    2. şimdi elimizde 32 tane bitten oluşan bir yığın var.
    32 sayısı 6 ya kalansız bölünemediği için bölünene kadar, yani allah ne verdiyse sağına sekizer sıfır olarak ekliyoruz:
    01000001010001000100011001000100 + 00000000 (40 / 6 olmaz)
    01000001010001000100011001000100 + 00000000 + 00000000 (48 / 6 oldu galiba)
    eder:
    010000010100010001000110010001000000000000000000 (kaç byte eklediğimizi bir kenarda tutalım, lazım olacak)

    3. hane sayısını 6ya kalansız bölünebilen bir rakama ulaştırdık. şimdi 6şarlı olarak grupluyoruz ki 6 bitlik öbeklerimiz olsun.
    010000 010100 010001 000110 010001 000000 000000 000000

    4. şimdi elimizdeki 8 tane 6 haneli sayı: 16, 20, 9, 3, 17, 0, yok(=), yok(=)
    yukarda eklediğimiz her fazladan hane için birer "yok(=)" yazdık ki encode eden arkadaş neyin sıfır olmadığını bilsin.

    5. artık yukarıdaki hede dizimizle bu rakamları eşleştirebiliriz. eşleştirelim:
    16(q), 20(u), 9(j), 3(d), 17(r), 0(0), yok(=), yok (=)
    sondaki fazladan "=" decode için gereksiz olacağı için kaldırabiliriz. kaldıralım.
    aha base64:
    qujdra=

    afiyet olsun.
  • orjinal datadan %33 oranında daha büyük boyutlarda output üreten encoding şekli.

    %38 oranında bir artışa yol açan uuencode'dan bu yönüyle de avantaklıdır.
  • sourceforge bünyesinde yer alan bir hizmet ile kodlanabilen**, harfli rakamlı olay anlatım şeklidir.
    http://makcoder.sourceforge.net/demo/base64.php adresinde yer alan kutuya copy-paste eylersiniz, size patt diye sonucu çıkartır kendileri.
  • tam olarak ciktinin kac byte olacagini olcmek icin

    ceil(girdi uzunlugu / 3) * 4

    formulu kullanilabilir. veriyi 4/3 oraninda buyutur. bugun software okuyorsam, bana bu meslegi sectiren algoritmalardan biridir.
hesabın var mı? giriş yap