class
MagicCrypt {
private
$iv =
"这里写秘钥偏移量";
//密钥偏移量IV,可自定义
private
$encryptKey =
"服务端给的aes的key";
//AESkey,可自定义
public
function
encrypt(
$encryptStr) {
$localIV =
$this->
iv;
$encryptKey =
$this->
encryptKey;
$module =
mcrypt_module_open(MCRYPT_RIJNDAEL_128,
'', MCRYPT_MODE_CBC,
$localIV);
mcrypt_generic_init(
$module,
$encryptKey,
$localIV);
$block =
mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$pad =
$block - (
strlen(
$encryptStr) %
$block);
//Compute how many characters need to pad
$encryptStr .=
str_repeat(
chr(
$pad),
$pad);
// After pad, the str length must be equal to block or its integer multiples
$encrypted =
mcrypt_generic(
$module,
$encryptStr);
mcrypt_generic_deinit(
$module);
mcrypt_module_close(
$module);
return
base64_encode(
$encrypted);
}
public
function
decrypt(
$encryptStr) {
$localIV =
$this->
iv;
$encryptKey =
$this->
encryptKey;
$module =
mcrypt_module_open(MCRYPT_RIJNDAEL_128,
'', MCRYPT_MODE_CBC,
$localIV);
mcrypt_generic_init(
$module,
$encryptKey,
$localIV);
$encryptedData =
base64_decode(
$encryptStr);
$encryptedData =
mdecrypt_generic(
$module,
$encryptedData);
return
$encryptedData;
}
}
RSA加秒解密的代码
function
encrypt(
$originalData,
$pu_key,
$padding){
$crypto =
'';
foreach (
str_split(
$originalData,
117) as
$chunk) {
openssl_public_encrypt(
$chunk,
$encryptData,
$pu_key,
$padding);
$crypto .=
$encryptData;
}
return
base64_encode(
$crypto);
}
function
decrypt(
$encryptData,
$pi_key,
$padding){
$crypto =
'';
foreach (
str_split(
base64_decode(
$encryptData),
128) as
$chunk) {
openssl_private_decrypt(
$chunk,
$decryptData,
$pi_key,
$padding);
$crypto .=
$decryptData;
}
return
$crypto;
}