使用Crypto-JS进行加密解密的简单方法

徘徊边缘 提交于 2020-08-09 08:47:03

Crypto-JS是一个javascript加密解密库,使用该库进行加密解密的在线工具如:

https://tool.oschina.net/encrypt

这个库的用法比较简单,相关文件可以在上面的页面查看html找到,我也备份了:

https://github.com/setycyas/WebTools/tree/gh-pages/libs/Crypto-JS

文件众多,总结起来就2种,一个是核心文件core-min.js,其他的都是具体的某一种加密方法.

使用时必须加载core-min.js,然后使用哪种加密解密就加载哪个加密文件,看名字就知道是什么加密,

只有 tripledes.js比较特殊,包括DES与TripleDES两种加密解密.

加密函数的参数是:(明文字符串, 密码字符串),返回密文字符串.加密函数是:

CryptoJS.AES.encrypt, CryptoJS.DES.encrypt,CryptoJS.Rabbit.encrypt,CryptoJS.RC4.encrypt,CryptoJS.TripleDES.encrypt

解密函数的参数是:(密文字符串, 密码字符串),返回的结果必须用.toString(CryptoJS.enc.Utf8)转为明文.解密函数是:

CryptoJS.AES.decrypt, CryptoJS.DES.decrypt,CryptoJS.Rabbit.decrypt,CryptoJS.RC4.decrypt,CryptoJS.TripleDES.decrypt

我自制的函数举例:

/* 加密,解密函数,接受与输出都是utf-8 */
  /* 加密函数,参数为:明文,密码,加密类型,返回加密结果 */
  function encrypt(src, pw, encryptType){
    var encryptFunction;
    switch(encryptType.toLowerCase()){ 
      case "aes":
        encryptFunction = CryptoJS.AES.encrypt;
        break;
      case "des":
        encryptFunction = CryptoJS.DES.encrypt;
        break;
      case "rabbit":
        encryptFunction = CryptoJS.Rabbit.encrypt;
        break;
      case "rc4":
        encryptFunction = CryptoJS.RC4.encrypt;
        break;
      case "tripledes":
        encryptFunction = CryptoJS.TripleDES.encrypt;
        break;
    }
    return encryptFunction(src, pw);
  }
  
  /* 解密函数,参数: 密文,密码,解密类型,返回解密结果 */
  function decrypt(code, pw, decryptType){
    var decryptFunction;
    switch(decryptType.toLowerCase()){ 
      case "aes":
        decryptFunction = CryptoJS.AES.decrypt;
        break;
      case "des":
        decryptFunction = CryptoJS.DES.decrypt;
        break;
      case "rabbit":
        decryptFunction = CryptoJS.Rabbit.decrypt;
        break;
      case "rc4":
        decryptFunction = CryptoJS.RC4.decrypt;
        break;
      case "tripledes":
        decryptFunction = CryptoJS.TripleDES.decrypt;
        break;
    }
    return decryptFunction(code, pw).toString(CryptoJS.enc.Utf8);
  }

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!