AES加密

php实现AES/ECB/PKCS5Padding模式加密

classAesUtil

{

public static functionencrypt($input,$key){

$size= mcrypt_get_block_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_ECB);

$input= AesUtil::pkcs5_pad($input,$size);

$td=mcrypt_module_open(MCRYPT_RIJNDAEL_128,'',MCRYPT_MODE_ECB,'');

$iv= mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_RAND);

mcrypt_generic_init($td,$key,$iv);

$data= mcrypt_generic($td,$input);

mcrypt_generic_deinit($td);

mcrypt_module_close($td);

$data= base64_encode($data);

return$data;

}

private static functionpkcs5_pad($text,$blocksize){

$pad=$blocksize-(strlen($text)%$blocksize);

return$text. str_repeat(chr($pad),$pad);

}

public static functiondecrypt($sStr,$sKey){

$decrypted= mcrypt_decrypt(

MCRYPT_RIJNDAEL_128,

$sKey,

base64_decode($sStr),

MCRYPT_MODE_ECB

);

$dec_s= strlen($decrypted);

$padding= ord($decrypted[$dec_s-1]);

$decrypted= substr($decrypted,0, -$padding);

return$decrypted;

}

}

你可能感兴趣的:(AES加密)