php后端加密js前端解密mcrypt_module替换为openssl_encrypt
2018-03-24 21:46
936 查看
原文:http://vtuce.cn/p/18.html
JS端:string 要加密/解密的字符串code 秘钥字符串operation 默认false表示加密,传入true表示解密
PHP端:
$string 要加密/解密的字符串$code 秘钥字符串$operation 默认false表示加密,传入true表示解密function secret($string,$code,$operation=false){ $code = md5($code); $iv = substr($code,0,16); $key = substr($code,16); if($operation){ return openssl_decrypt(base64_decode($string),"AES-128-CBC",$key,OPENSSL_RAW_DATA,$iv); } return base64_encode(openssl_encrypt($string,"AES-128-CBC",$key,OPENSSL_RAW_DATA,$iv)); }注意:本函数支持php到7+ ,同时兼容5.6.33(已测试通过的版本) 。如果需要将加密的字符串在网址中传递,使用urlencode($str)函数转码即可。
JS端:string 要加密/解密的字符串code 秘钥字符串operation 默认false表示加密,传入true表示解密
<script src="cryptojs/core.js"></script> <script src="cryptojs/enc-base64.js"></script> <script src="cryptojs/cipher-core.js"></script> <script src="cryptojs/aes.js"></script> <script src="cryptojs/md5.js"></script> <script> function secret(string, code, operation) { code = CryptoJS.MD5(code).toString(); var iv = CryptoJS.enc.Utf8.parse(code.substring(0,16)); var key = CryptoJS.enc.Utf8.parse(code.substring(16)); if(operation){ return CryptoJS.AES.decrypt(string,key,{iv:iv,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8); } return CryptoJS.AES.encrypt(string, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7}).toString(); } </script>注意:如果需要将加密的字符串在网址中传递,使用encodeURIComponent(str)函数转码即可。实战案例:PHP后端加密:
public function index(){ $string = 'hello world'; $code = 'vtucecn'; $str = $this->secret($string,$code); return urlencode($str); }JS前端解密:
var $string = '页面已存在的密文'; var $code = '条件触发,get请求获取到的code'; var string = secret($string,$code,true); console.log(string);备注:为了避免暴力破解,$code要设置得足够复杂。本例中,前端JS并不知道$code,当一定条件触发后,才会去后端获取到code。CryptoJS地址:https://github.com/brix/crypto-js/tree/release-3.1.2
相关文章推荐
- RSA实现JS前端加密,PHP后端解密
- RSA实现JS前端加密,PHP后端解密
- RSA实现JS前端加密,PHP后端解密
- js前端加密,php后端解密(crypto-js,openssl_decrypt)
- RSA实现JS前端加密,PHP后端解密
- php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
- javascript加密PHP解密---jsencrypt
- PHP 使用 mcrypt 扩展中的 mcrypt_encrypt() 和 mcrypt_decrypt() 对数据进行加密和解密
- PHP openssl_encrypt 加密 代替 mcrypt_encrypt 加密方式 兼容 java 3DESede加密
- PHP openssl_encrypt 加密 代替 mcrypt_encrypt 加密方式 兼容 java 3DESede加密
- 表单提交时,前端用js加密,后端用Java(struts2)解密
- RSA前端JS加密,后端JAVA解密实现
- 关于openssl rsa php c++ js 协同加密解密的一些资源链接
- 基于角色的权限管理系统--前端登录数据js加密后端解密(DES)
- mcrypt_encrypt与mcrypt_encrypt,PHP加密与解密
- RSA加密,js前端,php后端
- 前端登录数据js加密后端解密(DES)-基于角色的权限管理系统
- 网络传输安全--前端js加密后端java解密
- PHP开发过程中AES加密解密问题 js前端AES加密,PHP解密