<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    emu in blogjava

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks
    <!DOCTYPE html>
    <html>
        <head>
            <META NAME="Author" CONTENT="emu">
            <META NAME="Keywords" CONTENT="webcrypto sha1 sha256 sha384 sha512">
        </head>
        <body>
            <div id=sha></div>
            <script type="text/javascript">
                
    function output(sign) {
                    document.getElementById(
    "sha").innerHTML += sign + "<br>";
                }
                
    function bufferToHex(b){
                    
    var dataview = new DataView(b);
                    result 
    = "";
                    
    for (var i = 0; i < b.byteLength; i += 4) {
                        tmp 
    = dataview.getUint32(i).toString(16);
                        result 
    += (tmp.length == 8 ? "" : "0"+ tmp;
                    }
                    
    return result;
                }
                
    function digest(s, callback, algorithm, errCallback) {
                    
    try {
                        
    if (!errCallback) {
                            errCallback 
    = callback;
                        }
                        
    var c = window.crypto || window.msCrypto;
                        
    var subtle = c.subtle || c.webkitSubtle;
                        
    if (!algorithm) algorithm = "SHA-512";
                        
    var a = s.split("");
                        
    for (var i = 0; i < a.length; i++) {
                            a[i] 
    = a[i].charCodeAt(0)
                        };
                        
    var data = new Uint8Array(a);
                        
    var op = subtle.digest({
                            name: algorithm
                        }, data);
            
                        
    if("then" in op){
                            op.then(
                                
    function(buffer) {
                                    callback(bufferToHex(buffer));
                                }, 
    function(e) {
                                    errCallback(e);
                                })
                        }
    else{
                            op.oncomplete
    =function(s){                    
                                callback(bufferToHex(s.target.result));
                            }
                        }
                    } 
    catch (e) {
                        errCallback(e);
                    }
                }
                digest(
    "test"new Function("output('sha-1(<i>test</i>) : '+arguments[0])"), "SHA-1");
                digest(
    "test"new Function("output('sha-256(<i>test</i>) : '+arguments[0])"), "SHA-256");
                digest(
    "hello"new Function("output('sha-384(<i>hello</i>) : '+arguments[0])"), "SHA-384");
                digest(
    "world"new Function("output('sha-512(<i>world</i>) : '+arguments[0])"), "SHA-512");
            
    </script>

        </body>
    </html>

    使用了瀏覽器原生接口,對舊瀏覽器沒有什么兼容性可言了,尤其是IE,一時半會兒還用不上。
    posted on 2014-09-27 21:40 emu 閱讀(1361) 評論(1)  編輯  收藏

    評論

    # re: 大家好像都比較少關(guān)心webcrypto,試試寫個簡單的sha1/sha256/sha384/sha512實現(xiàn)看看[未登錄] 2016-01-14 11:28 emu
    http://encode.chahuo.com/ 可以在這里驗證一下結(jié)果。

    偶然發(fā)現(xiàn),好像IE11支持了:
    https://msdn.microsoft.com/zh-cn/library/dn302325(v=vs.85).aspx  回復(fù)  更多評論
      


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 亚洲伦另类中文字幕| 亚洲精品伦理熟女国产一区二区| 免费人成视频在线观看网站| 亚洲国产精品综合久久久| 国产免费观看a大片的网站| 91在线免费视频| 亚洲色大情网站www| 激情综合色五月丁香六月亚洲| 67pao强力打造高清免费| 久久精品国产亚洲av天美18| 亚洲开心婷婷中文字幕| 扒开双腿猛进入爽爽免费视频| 国产精品福利在线观看免费不卡| 亚洲成人免费在线观看| 亚洲性猛交XXXX| 天天拍拍天天爽免费视频| 免费精品一区二区三区第35 | 亚洲AV无码久久| 女人毛片a级大学毛片免费| 国产一精品一AV一免费| 精品成人一区二区三区免费视频 | 羞羞视频免费网站日本| 亚洲国产精品成人久久久 | 亚洲一卡2卡3卡4卡5卡6卡| 亚洲成AV人片一区二区密柚| 国产精品成人免费综合| 免费在线视频你懂的| aaa毛片视频免费观看| 国产精品亚洲天堂| 亚洲一级高清在线中文字幕| 国产亚洲精品岁国产微拍精品| 日本v片免费一区二区三区| 69堂人成无码免费视频果冻传媒| 中文字幕免费视频精品一| 鲁啊鲁在线视频免费播放| 学生妹亚洲一区二区| 亚洲香蕉免费有线视频| 亚洲AV无码成人专区片在线观看| 亚洲国产天堂久久综合| 国产成人精品男人免费| 免费看的黄色大片|