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) //进行返回密文 }