小白自己做网站,专注于网站营销服务,巩义市网站建设培训班,软件开发平台都有哪些基于PHP和JS的AES相互加密解密方法详解(CryptoJS)基于PHP和JS的AES相互加密解密方法详解(CryptoJS)注意说明#xff1a;1. 首先引入CryptoJS包中的aes.js和pad-zeropadding.js2. 其次引入了jquery.min.js和自己封装的function.js(内容主要是加密解密函数)3. 加密解密过程中的向…基于PHP和JS的AES相互加密解密方法详解(CryptoJS)基于PHP和JS的AES相互加密解密方法详解(CryptoJS)注意说明1. 首先引入CryptoJS包中的aes.js和pad-zeropadding.js2. 其次引入了jquery.min.js和自己封装的function.js(内容主要是加密解密函数)3. 加密解密过程中的向量和密钥必须保持一致4. 进行加密的数据(字符串类型){username:1001,password:123456,terminal:PC}5. 加密结果是变化的在这不写(变化的原因是因为密钥取得是当前时间)6. 具体详情可读代码(注释完整)加密测试进行加密的数据(字符串类型){username:1001,password:123456,terminal:PC}解密测试进行解密密的数据(字符串类型、PHP端生成)8bkd/doBOrG3pTEGkRwk9A3ZLrzXtf10E6Nn9CSoHXRXHydM7xt7PllPhUSItuK8ciF5g6UZ7DruCPQCVNZIJzI4ZHyUMJlV2aHyqMhbEoyS3pK6lPs1MsOeU/H7BZ5解密的密钥(PHP端生成)JS解密后字符串/*** 接口数据加密函数* param str string 需加密的json字符串* param key string 加密key(16位)* param iv string 加密向量(16位)* return string 加密密文字符串*/function encrypt(str, key,iv) {//密钥16位var key CryptoJS.enc.Utf8.parse(key);//加密向量16位var iv CryptoJS.enc.Utf8.parse(iv);var encrypted CryptoJS.AES.encrypt(str, key,{iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.ZeroPadding});returnencrypted;}/*** 接口数据解密函数* param str string 已加密密文* param key string 加密key(16位)* param iv string 加密向量(16位)* returns {*|string} 解密之后的json字符串*/function decrypt(str, key,iv) {//密钥16位var key CryptoJS.enc.Utf8.parse(key);//加密向量16位var iv CryptoJS.enc.Utf8.parse(iv);var decrypted CryptoJS.AES.decrypt(str, key,{iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.ZeroPadding});return CryptoJS.enc.Utf8.stringify(decrypted);}//********************************加密**********************************//获取当前时间戳13位 3位字符var timestamp new Date().getTime().toString() WZH;//加密密钥16位var encrypt_key timestamp;//加密向量16位var iv ZZWBKJ_ZHIHUAWEI;//要加密的数据var encrypt_string {username:1001,password:123456,terminal:PC};//加密后密文(加密函数在function.js文件中)var encrypted_string encrypt(encrypt_string, encrypt_key,iv);$(#encrypt_key).text(JS加密密钥 encrypt_key);$(#encrypt_string).text(JS加密后字符串 encrypted_string);//********************************结束**********************************//********************************解密**********************************//解密密钥16位(解密向量同上)var decrypt_key 20180227110419WB;//解密密文字符串var decrypt_string 8bkd/doBOrG3pTEGkRwk9A3ZLrzXtf10E6Nn9CSoHXRXHydM7xt7PllPhUSItuK8ciF5g6UZ7DruCPQCVNZIJzI4ZHyUMJlV2aHyqMhbEoyS3pK6lPs1MsOeU/H7BZ5;var decrypted_string decrypt(decrypt_string, decrypt_key,iv);$(#decrypt_key).text(解密的密钥(PHP端生成) decrypt_key);$(#decrypt_string).text(JS解密后字符串 decrypted_string);//********************************结束**********************************