前端登录EDS加密和解密传输数据案例

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>EDS加密和解密传输</title>
        <style type="text/css">
            .pass{
                outline: none;
                border: 0;
            }
        </style>
    </head>
    <body>
        <div>
            <label>账号 : </label> <input type="text" name="userName" placeholder="请输入账号">
            <label>密码 : </label><input type="password"  name="passWord" placeholder="请输入密码" />
            <button class="submit">提交</button>
        </div>
        <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.js"></script>
        <script type="text/javascript">
            $('.submit').click(function() {
                var arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
                    'u', 'v', 'w', 'x', 'y', 'z',
                    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
                    'L', 'M', 'N', 'O', 'P',
                    'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
                ];
                var str = '',str1 = '';
                while (str.length < 16) {
                    var iNum = parseInt(Math.random() * 100)
                    while (iNum > 60) {
                        iNum = parseInt(Math.random() * 100)
                    }
                    str += arr[iNum];
                }
                while (str1.length < 16) {
                    var iNum = parseInt(Math.random() * 100)
                    while (iNum > 60) {
                        iNum = parseInt(Math.random() * 100)
                    }
                    str1 += arr[iNum];
                }
                
                const key = CryptoJS.enc.Utf8.parse(str);  //十六位十六进制数作为密钥
                const iv = CryptoJS.enc.Utf8.parse(str1);   //十六位十六进制数作为密钥偏移量
                var PassWord = $('input[name="passWord"]').val();
                var userName =  $('input[name="userName"]').val();
                alert(userName)
                 //加密方法
                function Encrypt(word) {
                    let srcs = CryptoJS.enc.Utf8.parse(word);
                    let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
                    return encrypted.ciphertext.toString().toUpperCase();
                }
                
                //解密方法
                function Decrypt(word) {
                    let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
                    let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
                    let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
                    let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
                    return decryptedStr.toString();
                }
                
                //使用说明
                var newPass  = Encrypt(PassWord);//加密后的密码
                var pass =  Decrypt(newPass);   //加密前密码
                console.log('加密后密码:'+newPass);
                console.log('原始密码:'+pass)
                
                var newUser  = Encrypt(userName);//加密后的密码
                var user =  Decrypt(newUser);   //加密前密码
                console.log('加密后用户名:'+newUser);
                console.log('原始用户名:'+user)
            })
        </script>
    </body>
</html>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Session Fixation 例子:假设A有一辆汽车,A把汽车卖给了B,但是A并没有把所有的车钥匙交给B,还自...
    留白_bb77阅读 3,114评论 0 0
  • 所以一个完整的爬虫一般会包含如下三个模块: 网络请求模块 爬取流程控制模块 内容分析提取模块 网络请求 我们常说爬...
    钟文晶阅读 1,369评论 0 1
  • (数据库续) 数据库操作实例(注册和登录功能) 数据库结构 接口注册:/reg?user=xxx&pass=xxx...
    小鱼爱学习哦阅读 2,312评论 0 0
  • 每日一诗复习计划 青玉案 元夕 辛弃疾 东风夜放花千树,更吹落,星如雨。宝马雕车香满路。凤箫声动,玉壶光转,一夜鱼...
    海阔林韵阅读 1,400评论 0 0
  • 关于生死的话题,历来深受文人雅士以及儒者圣人的争论探讨。 “生”与“死”这对看似生命的两极,寄存在这缥缈无定的凡尘...
    千山行客阅读 13,306评论 2 9

友情链接更多精彩内容