最近再做一个php为后台,html5为手机客户端开发的项目,涉及到数据的加密问题。使用的加密方式为:AES加密对称加密方法。
方案一:js端加密,php端解密。
js引用:采用谷歌的crypto-js
JS代码中加密如下:
var data = "mysql_connect('111.111.111.111','root','111111')";
var key = CryptoJS.enc.Utf8.parse('1a1a1a1b1e1c1s12');
var iv = CryptoJS.enc.Utf8.parse('1111111111111111');
var encrypted = CryptoJS.AES.encrypt(data, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding });
var msg = encrypted.toString();
获取msg的字符串,将其保存下来
php解密的代码如下:
$msg2 = 'OJzl17WRLpo5jm8iFDrapzetx2g1lghHtHb4SwEimeTJf2qkw1vjetMdVyRaxjIh';
$privateKey = "1a1a1a1b1e1c1s12";
$iv = "1111111111111111";
$encryptedData = base64_decode($msg2);
$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $privateKey, $encryptedData, MCRYPT_MODE_CBC, $iv);
echo($decrypted);
解密成功!