司空骏 發表於 2019-8-15 15:09:00

uni-app使用DES加密解密数据

<p><strong>1 uni-app操作</strong></p>
<p>(1) 打开HBuilderX的视图-&gt;显示终端</p>
<p>  cd 切换到你项目的根目录</p>
<p>  执行命令 npm install crypto<span class="token operator">-js</span></p>
<p><span class="token operator">安装成功后你的项目根目录会生成node_modules文件夹,里面有crypto<span class="token operator">-js就说明成功了</span></span></p>
<p><img src="https://img2018.cnblogs.com/blog/1226698/201908/1226698-20190815143602663-1932782625.png"></p>
<p>(2)接下来在哪使用就直接import CryptoJS from './node_modules/crypto-js/crypto-js.js'引入就可以了</p>
<p>(3)封装函数</p>
<p>&nbsp; 明天再写。。。忘记了; 现在补充</p>
<p>我把crypto-js/crypto-js.js拷贝到了common目录下,并在下面新建了个js文件,写入下面代码;</p>
<div class="cnblogs_code">
<pre>import CryptoJS from './crypto-js/crypto-js.js'

<span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">
    DES(Data Encryption Standard)和TripleDES是对称加密的两种实现。
    DES和TripleDES基本算法一致,只是TripleDES算法提供的key位数更多,加密可靠性更高。
    DES使用的密钥key为8字节,初始向量IV也是8字节。
    TripleDES使用24字节的key,初始向量IV也是8字节。
</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">des加密 DES-EDE3-CBC</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> keyvi = '12345678'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> des_encrypt(message) {
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> key            =<span style="color: rgba(0, 0, 0, 1)"> CryptoJS.MD5(keyvi).toString();
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> iv            =<span style="color: rgba(0, 0, 0, 1)"> CryptoJS.MD5(keyvi).toString();
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> crypto_key   =<span style="color: rgba(0, 0, 0, 1)"> CryptoJS.enc.Utf8.parse(key);
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> crypto_iv   = CryptoJS.enc.Utf8.parse(iv.substr(0,8<span style="color: rgba(0, 0, 0, 1)">));

    </span><span style="color: rgba(0, 0, 255, 1)">var</span> encode_str   =<span style="color: rgba(0, 0, 0, 1)"> CryptoJS.TripleDES.encrypt(message, crypto_key, {   
                        iv:         crypto_iv,   
                        mode:         CryptoJS.mode.CBC,   
                        padding:   CryptoJS.pad.Pkcs7});
    </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> encode_str.toString();

}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">des解密 DES-EDE3-CBC</span>
<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> des_decrypt(message)
{
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> key            =<span style="color: rgba(0, 0, 0, 1)"> CryptoJS.MD5(keyvi).toString();
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> iv            =<span style="color: rgba(0, 0, 0, 1)"> CryptoJS.MD5(keyvi).toString();
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> crypto_key   =<span style="color: rgba(0, 0, 0, 1)"> CryptoJS.enc.Utf8.parse(key);
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> crypto_iv   = CryptoJS.enc.Utf8.parse(iv.substr(0,8<span style="color: rgba(0, 0, 0, 1)">));
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> decrypt_str    =<span style="color: rgba(0, 0, 0, 1)"> CryptoJS.TripleDES.decrypt(message, crypto_key, {   
                        iv:         crypto_iv,   
                        mode:         CryptoJS.mode.CBC,   
                        padding:   CryptoJS.pad.Pkcs7});
    </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">   decrypt_str.toString(CryptoJS.enc.Utf8);   
}

module.exports </span>=<span style="color: rgba(0, 0, 0, 1)"> {
    des_encrypt: des_encrypt,
    des_decrypt: des_decrypt
}</span></pre>
</div>
<p>&nbsp;</p>
<p>    </p><br><br>
来源:https://www.cnblogs.com/JahanGu/p/11358084.html
頁: [1]
查看完整版本: uni-app使用DES加密解密数据