鍍金池/ 問(wèn)答/HTML/ md5.js加密視頻返回值一樣?

md5.js加密視頻返回值一樣?

各位老哥,我在做一個(gè)js切片上傳文件,前端這邊傳遞一個(gè)文件的唯一標(biāo)識(shí),我用了md5后發(fā)現(xiàn)不同的視頻打印出的加密值都相同?這就很尷尬了,谷歌許久未曾解惑!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="http://cdn.bootcss.com/blueimp-md5/1.1.0/js/md5.min.js"></script> 
</head>
<body>
    <form action="">
        <input type="file" id="test" multiple="multiple"/>
    </form>
    <script>
        window.onload=function(){
            let upInput=document.getElementById('test');
            upInput.addEventListener('change',function(){
                var file = this.files[0];
                var reader = new FileReader();
                reader.readAsArrayBuffer(file);
                reader.addEventListener("load", function(e) {
                    var res = e.target.result;
                    console.log(res,'res')
                    var md5Info=md5(res)
                    console.log(md5Info,'md5Info')
                });
            })
        }
    </script>
</body>
</html>

這是臨時(shí)的demo,各位老哥可以運(yùn)行看下。

回答
編輯回答
瞄小懶
 function md5 (string, key, raw) {
    ...
 }   

blueimp-md5.js

res是一個(gè)ArrayBuffer,md5(res)意思是md5(res.toString())//md5('[object ArrayBuffer]'),所以都一樣。
要么轉(zhuǎn)成string,要么使用支持ArrayBuffermd5模塊。

2017年3月10日 10:26