LockAuthority核心类
class LockAuthority
{
/**
* This was AES-128 / CBC / PKCS5Padding
* return base64_encode string
* @author Terry
* @param string $plaintext
* @param string $key
* @return string
*/
public static function AesEncrypt($plaintext, $key = null)
{
$plaintext = trim($plaintext);
if ($plaintext == '') return '';
@$size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
//PKCS5Padding
$padding = $size - strlen($plaintext) % $size;
// 添加Padding
$plaintext .= str_repeat(chr($padding), $padding);
@$module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
@$key = self::substr($key, 0, mcrypt_enc_get_key_size($module));
$iv = str_repeat("\0", $size); //java里面的16个空数组对应的是\0.
/* Intialize encryption */
@mcrypt_generic_init($module, $key, $iv);
/* Encrypt data */
@$encrypted = mcrypt_generic($module, $plaintext);
/* Terminate encryption handler */
@mcrypt_generic_deinit($module);
@mcrypt_module_close($module);
return base64_encode($encrypted);