<?php
/**
abstract class AES{
/**
* 算法,另外还有192和256两种长度
/
const CIPHER = MCRYPT_RIJNDAEL_128;
/*
* 模式
*/
const MODE = MCRYPT_MODE_ECB;
/**
* 加密
* @param string $key 密钥
* @param string $str 需加密的字符串
* @return type
*/
static public function encode( $key, $str ){
$iv = mcrypt_create_iv(mcrypt_get_iv_size(self::CIPHER,self::MODE),MCRYPT_RAND);
return mcrypt_encrypt(self::CIPHER, $key, $str, self::MODE, $iv);
}
/**
* 解密
* @param type $key
* @param type $str
* @return type
*/
static public function decode( $key, $str ){
$iv = mcrypt_create_iv(mcrypt_get_iv_size(self::CIPHER,self::MODE),MCRYPT_RAND);
return mcrypt_decrypt(self::CIPHER, $key, $str, self::MODE, $iv);
}
}
?>
自己写了个java的,但是加密出来,前面一段相同,后面一段不同
public static String encrypt(String input, String key) throws Exception {
byte[] crypted = null;
try {
SecretKeySpec skey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, skey);
crypted = cipher.doFinal(input.getBytes());
} catch (Exception e) {
System.out.println(e.toString());
}
return new String(byte2hex(crypted));
}
可以看看这篇blog,http://blog.csdn.net/hbcui1984/article/details/5201247