js加密解密二进制文件方法

js加密解密二进制文件方法

js加密解密二进制文件方法

本文通过crypto对二进制文件进行aes加密和解密,加密之后的文件是以文本的形式存储的

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>BFW NEW PAGE</title>
    <script id="bfwone" data="dep=jquery.17|crypto-js-3.1.9-1/crypto-js|crypto-js-3.1.9-1/pad-zeropadding&err=0" type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/bfwone.js"></script>
    <script type="text/javascript">
        bready(function() {

            $("#desfilebtn").click(function() {
                // Has a file been selected?
                var pwd = $("#pwd").val();

                if (pwd == "") {
                    alert('请设置一个解密密码');
                    return false;
                }

                if (document.getElementById("selectfile").files.length != 1) {
                    alert('请选择一个文件');
                    return false;
                }

                var file = document.getElementById("selectfile").files[0];
                var reader = new FileReader();

                reader.onload = function(e) {

                    var decrypted = CryptoJS.AES.decrypt(e.target.result, pwd)
                    .toString(CryptoJS.enc.Latin1);

                    if (!/^data:/.test(decrypted)) {
                        alert("密码错误");
                        return false;
                    }

                    $("#downloadbtn").attr('href', decrypted);
                    $("#downloadbtn").attr('download', file.name.replace('.encrypted', ''));
                    $("#downloadbtn").html("解密完成,点击下载");


                };

                reader.readAsText(file);



            });
            $("#encfilebtn").click(function() {
                // Has a file been selected?
                var pwd = $("#pwd").val();

                if (pwd == "") {
                    alert('请设置一个加密密码');
                    return false;
                }

                if (document.getElementById("selectfile").files.length != 1) {
                    alert('请选择一个文件');
                    return false;
                }

                var file = document.getElementById("selectfile").files[0];
                var reader = new FileReader();
                // var file =
                reader.onload = function(e) {
                    var encrypted = CryptoJS.AES.encrypt(e.target.result, pwd);

                    $("#downloadbtn").attr('href', 'data:application/octet-stream,' + encrypted);
                    $("#downloadbtn").attr('download', file.name + '.encrypted');
                    $("#downloadbtn").html("加密完成,点击下载");

                };
                reader.readAsDataURL(file);


            });


        });
    </script>
</head>
<body>
    <p>
        <input type="text" id="pwd" placeholder="请输入密码" />
    </p>
    <p>
        <input type="file" id="selectfile" /><br><a id="downloadbtn"></a>
    </p>
    <p>
        <input type="button" id="encfilebtn" value="加密文件" />
    </p>
    <p>
        <input type="button" id="desfilebtn" value="解密文件" />
    </p>
</body>
</html>


{{collectdata}}

网友评论0