web前端的加密方式

目前涉及到的就这些,如果有其他加密方式可以私信我或者在评论下补充

不可逆加密方式

MD5加密方式(不可逆)

//下载文件或者安装MD5依赖后
var code = "123456";
        var username = "123456";
        var password = "123456";
        //前三种方式直接进行加密,后三种根据密钥进行加密
        var str1 = hex_md5("123456"); 
        var str2 = b64_md5("123456");
        var str3 = str_md5("123456");
        var str4 = hex_hmac_md5(key,code);
        var str5 = b64_hmac_md5(key,username);
        var str6 = str_hmac_md5(key,password);
        console.log(str1);            // e10adc3949ba59abbe56e057f20f883e
        console.log(str2);            // 4QrcOUm6Wau+VuBX8g+IPg
        console.log(str3);            // áÜ9IºY«¾VàWò��>
        console.log(str4);            // 30ce71a73bdd908c3955a90e8f7429ef
        console.log(str5);            // MM5xpzvdkIw5VakOj3Qp7w
        console.log(str6);            // 0Îq§;Ý��9U©��t)ï

sha1加密(不可逆)

<script src="https://cdn.bootcss.com/js-sha1/0.6.0/sha1.js"></script>
<script type="text/javascript">
        var str = '1142422'
        var sha1_1 = sha1(str);
        console.log(sha1_1);
</script>

 

可逆的加密方式

编码和解码的加密形式

 

      //这种事通过字符码的转换来进行简单加密的操作
      var escape1 =escape("要加密的字符串");//编码
      var unescape1 = unescape('要解码的字符串'); //解码

base64加密方式

//加密
setBase64(str){
   return window.btoa(str)  
},
//解密
getBase64(str){
   return window.atob(str)
}

 

crypto-js的加密方式,包括(DES、AES...等)

crypto-js整体包括的方法还是挺多的,可以参考:https://blog.csdn.net/Umbrella_Um/article/details/99686988

  (1)、DES的加密方式

//引入crypto-js文件或依赖
//加密方法
encryptDes(message){//传递要加密的字符串
 const keyHex = cryptojs.enc.Utf8.parse('这边是密钥,随便定义字符串')
 const option = {
    vi:'设置偏移量,这边没有用,默认不用填', mode: cryptojs.mode.ECB, padding: cryptojs.pad.Pkcs7 }
//加密体 const encrypted = cryptojs.DES.encrypt(message, keyHex, option) return encrypted.ciphertext.toString() //进行返回密文 } //解密方法 decryptDes(message){//传递要解密的字符串 const keyHex = cryptojs.enc.Utf8.parse('这边是密钥,需要和加密是的保持一致') const option = {
     vi:'加密是有偏移量,需要保持一致,如果没有请忽略', mode: cryptojs.mode.ECB, padding: cryptojs.pad.Pkcs7 }
//加密体 const mess = { ciphertext: cryptojs.enc.Hex.parse(message) } const decrypted = cryptojs.DES.decrypt(mess, keyHex, option) return decrypted.toString(cryptojs.enc.Utf8) //进行返回密文 }

  (2)、AES的加密方式

//引入crypto-js文件或依赖
//加密方法
encryptAes(message){//传递要加密的字符串
 const keyHex = cryptojs.enc.Utf8.parse('这边是密钥,随便定义字符串')
 const iv = cryptojs.enc.Utf8.parse('这边是偏移量')
 const option = {
       iv:iv,
         mode: cryptojs.mode.CBC,
         padding: cryptojs.pad.Pkcs7
       }//加密体
 const encrypted = cryptojs.AES.encrypt(message, keyHex, option)
 return encrypted.toString() //进行返回密文   
}   
//解密方法
decryptAes(message){//传递要解密的字符串
 const keyHex = cryptojs.enc.Utf8.parse('这边是密钥,需要和加密是的保持一致')
 const iv = cryptojs.enc.Utf8.parse('这边是偏移量')
 const option = {
      iv:iv,
         mode: cryptojs.mode.CBC,
         padding: cryptojs.pad.Pkcs7
       }//加密体
 const decrypted = cryptojs.DES.decrypt(message, keyHex, option)     
 return decrypted.toString(cryptojs.enc.Utf8) //进行返回密文   
} 

 

posted @ 2021-11-20 14:16  40度丶仰望  阅读(703)  评论(0编辑  收藏  举报