crypto-js aes加解密

引入依赖

<script type="text/javascript" src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/aes.min.js"></script>

html

key:<input id="key" value="">
<!--<input id="iv" value="">-->
原码:<input id="pass" value="">
加密:<input  id="passaes" value="">
<button onclick="onEncryptedAes()"></button>
<button onclick="onDecryptedAes()"></button>

js

function onEncryptedAes(){
        let str = $('#pass').val()
        let key = $('#key').val()
        let iv = '0123456789abcdef';
        if(key.length<16){
            let length = 16-key.length
            for(let i = 0;i<length;i++){
                key+='l'
            }
        }
        let keyAes = CryptoJS.enc.Utf8.parse(key);
        let ivAes = CryptoJS.enc.Utf8.parse(iv);
        let encrypted = CryptoJS.AES.encrypt(str, keyAes, {
            iv: ivAes,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
        // 转换为字符串
        let encryptedAes = encrypted.toString();
        $('#passaes').val(encryptedAes)
    }
    function onDecryptedAes(){
        let stra = $('#passaes').val()
        let key = $('#key').val()
        let iv = '0123456789abcdef';
        if(key.length<16){
            let length = 16-key.length
            for(let i = 0;i<length;i++){
                key+='l'
            }
        }
        let keyAes = CryptoJS.enc.Utf8.parse(key);
        let ivAes = CryptoJS.enc.Utf8.parse(iv);
        let decrypted = CryptoJS.AES.decrypt(stra, keyAes, {
            iv: ivAes,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
        // 转换为 utf8 字符串
        let decryptedAes = CryptoJS.enc.Utf8.stringify(decrypted);
        $('#pass').val(decryptedAes)
    }
posted @ 2021-12-31 13:41  秋~殇  阅读(402)  评论(0)    收藏  举报
Live2D