base64編碼用在HTML(支持IE6、IE7、IE8)


  1. 在HTML使用base64編碼, 叫做Data URI scheme
  2. Data URI scheme目前支持的類型有:(2016-10-19)
    data:,文本字串
    data:text/plain,%s
    data:text/html,%s
    data:text/html;base64,%s
    data:text/css,%s
    data:text/css;base64,%s
    data:text/javascript,%s
    data:text/javascript;base64,%s
    data:image/gif;base64,%s
    data:image/png;base64,%s
    data:image/jpeg;base64,%s
    data:image/x-icon;base64,%s


  3. 1)在 linux 下直接可以使用 base64 命令行工具產生 base64 編碼:
    > base64 "/user/prj/64 tester/test.png"
    2)在 PHP 中可以用函數 base64_encode() 進行編碼:
    <?php
        $s = '123';
        echo base64_encode($s);
        // 附:反編譯 : base64_decode($s);
    ?>
    3)在 HTML5 下的瀏覽器運用 FileReader 進行編碼:
    <input type="file" onchange="readfile4base64uri(this)" />
    <script type="text/javascript">
    function readfile4base64uri(el) {
        var f = el.files[0];
        var reader = new FileReader();
        reader.readAsDataURL(f);
        reader.onload = function(e) {
            var s = this.result;
            alert(s);
            // var _tmp = '<img src="' + s + '" class="ya-Ma-dieee" />';
            // $('preview-panel').innerHTML = _tmp;
        };
    }
    </script>
    4) 用 csharp 的話, 可以這樣:
    static public string base64(string s, bool b)
    {
        /***
        * bool b, When [true] 加密, otherWise [false] 解密
        * author: xhx jx744418777
        * OnDate: 20161019 [C# vs2010 WinXp sp3]
        ***/
        try
        {
            if (b) {
                    return System.Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(s));
            } else {
                    return System.Text.Encoding.Default.GetString(System.Convert.FromBase64String(s));
            }
        } catch(Exception exp)
        {
            return exp.Message;
         }
        return null;
    }
    5)C\C++, 參考 CSDN 上的:
            http://blog.csdn.net/tiandyoin/article/details/30723475
            《[轉] Base64加密解密算法的C/C++代碼實現》

  4. base64 瀏覽器支持程度:
      Opera 7.2+ data URI 必須小於4100字符
      IE8+ data URI必須小於32k(IE8不支持js的data URI(用js的話要根據具體瀏覽器和系統編寫,

    我在WinXp IE6下寫時有些bug, 若只是使用 javascript 地址加入: file:// 前綴才行)

      ChromeFFSafari無限制

  5. 1)
    http://blog.csdn.net/hansel/article/details/32223269
    《[原] Chrome保存網頁為mhtml格式》
    I. 打開chrome,在地址欄輸入chrome://flags,
    II. 找到“Save Page as MHTML”,點擊[enable],重啟chrome,搞定。
    III.打開這個選項后,保存網頁只能保存為mhtml格式。

    2)在 IE6 、 IE7 下參考:
    Content-Type: multipart/related;
    type="text/html";
    boundary="----=_Part_A47D6C30"
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5994

    ------=_Part_A47D6C30
    Content-Type: text/html; charset="utf-8"
    Content-Transfer-Encoding: quoted-printable
    Content-Location: =?utf-8?Q?index.html?=

    =EF=BB=BF<!DOCTYPE HTML>
    <html lang=3D"en-US">
    <head>
    <meta charset=3D"UTF-8">
    <title>Document</title>
    <style type=3D"text/css">
    .uptip {
    width: 150px;
    background: #cdf url(test.png) no-repeat right center;
    }
    </style>

    <script type=3D"text/javascript">
    alert(888);
    window.onerror =3D function(line){
    alert(line);
    };
    </script>
    <script type=3D"text/javascript" src=3D"test.js"></script>
    </head>
    <body>
    <p>1. TEXT tag:&nbsp;&nbsp;<span>2131231</span></p>
    <p>2. IMG tag:&nbsp;&nbsp;<IMG alt=3D"img tag" src=3D"test.png"></p>
    <p class="3D""uptip">3. Css background:&nbsp;&nbsp;<span ></span></p>
    <p>3. test javascript:&nbsp;&nbsp;<span id="testjs"></span></p>
    </body>
    </html>

    ------=_Part_A47D6C30
    Content-Type: image/png
    Content-Transfer-Encoding: base64
    Content-Location: =?utf-8?Q?test.png?=

    iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
    bWFnZVJlYWR5ccllPAAAAdFJREFUeNqkk71LHEEYxt/Zr1u4O46gIlhITJMmReCwOFGjhQTSaEgj
    CGmyhYWlTYIg9lYhEA3nf6CohYJooSRaiKISFY1fUUEil+hy7t3t7XzlHTGghe4dGXjmhd35PTvv
    MztESgn/Mww1nX3r78DyDvWiRG4BNVLTODBBThf6Og07kX70pMmOxKt0CNsRIVC8ynD3aMmnhQvH
    YIw5lXUp27K4Lgr7AFKEGGhgWVE98bje/vV9yjE450nLRLh4DiCKuCIsEwJSi4BlVuuKNRilumAe
    SJovAb4ZnGMnHijWoIyB4BQkZ2WlT5BRrEGpgjmalGegIaNYZcA5QxNWnoHUqDLgBg2C1VzWbbFN
    ppecAQYZeFmB7JaGLunDrTU/5/lcMGxFZfKgOBTygTjcXveRHSHqV54detOFtg4qed83kw2pGCGS
    /M649OePnXV8lG7rHvtCwu7C9Kf256Zlf61vao1J5sPmxmb+ys00v+qZXL0OM6xbPGun7llLRB3S
    3u6ef5k5G/4HX6fx0A7GB1++rX2aGo7Go/rxznKQ97IfX/fOfLgT520DQoiNJYaKVyQilZ/fN88L
    CebByeXc4sb56PTS6Qq++4Nykcsp5q8AAwDKgQwKmGYUpAAAAABJRU5ErkJggg==

    ------=_Part_A47D6C30--

  6. 【參考】
    1、 http://www.jb51.net/article/50789.htm <神盾加密解密教程(三)PHP 神盾解密工具>
    2、 http://music.163.com/#/playlist?id=387178008&userid=5776820 <網易音樂 3D你的耳朵>
    3、 https://github.com/mangui/flashls/releases/ <hls(m3u8) flash v0.4.4.21>
    4、 http://blog.csdn.net/hansel/article/details/32223269 <Chrome保存網頁為mhtml格式>

  7. The End.

    寫zuo歷時: <13:15:00 ~ 15:31:00> ON [20161019] Ver [v0.01]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM