WECHAT小程序
引入crypto-js包
var CryptoJS = require('../../crypto/crypto-js.js');
onLoad: function (options) {
var keyHex = CryptoJS.enc.Utf8.parse("wechat");
var data = '試試能不能解'
console.log("原始字符串:" + data);
var encrypted = CryptoJS.DES.encrypt(data, keyHex,{
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
var encryptData = encrypted.toString();
console.log("加密之後的結果:" + encryptData);
var decrypted = CryptoJS.DES.decrypt({ ciphertext:
CryptoJS.enc.Base64.parse(encryptData) }, keyHex,{
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
var decryptedData = decrypted.toString(CryptoJS.enc.Utf8);
console.log("解密之後的結果:" + decryptedData);
}
PHP:
function myDecrypt($data){//解密
$key = "wechat";
$decrypted= mcrypt_decrypt(
MCRYPT_DES,
$key,
base64_decode($data),
MCRYPT_MODE_ECB
);
$dec_s = strlen($decrypted);
$padding = ord($decrypted[$dec_s-1]);
$decrypted = substr($decrypted, 0, -$padding);
return $decrypted;
}
function myEncrypt($data){//加密
//初始向量
$key = "wechat";
$encrypted= mcrypt_encrypt(
MCRYPT_DES,
$key,
PaddingPKCS7($data),
MCRYPT_MODE_ECB
);
return base64_encode($encrypted);
}
function PaddingPKCS7($data) {
$block_size = mcrypt_get_block_size(MCRYPT_3DES, MCRYPT_MODE_ECB);
$padding_char = $block_size - (strlen($data) % $block_size);
$data .= str_repeat(chr($padding_char),$padding_char);
return $data;
}
$conent= myEncrypt('試試能不能解');
echo "加密測試:【".$conent."】";
$str_decrypt=myDecrypt($conent);
echo "還原[".$str_decrypt."]";
工具包下載: