package xxx;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.security.Key;
public class AESUtil
{
/**
*
用来进行加密的操作
*
*
@param data
*
@return
*
@throws Exception
*/
public String
encrypt(String data) throws Exception
{
Key
key = new SecretKeySpec(keyValue,
KEY_ALGORITHM);
Cipher
c = Cipher.getInstance(KEY_ALGORITHM); //
创建密码器
c.init(Cipher.ENCRYPT_MODE,
key); //
初始化
byte []
encVal = c.doFinal(data.getBytes());
return new BASE64Encoder().encode(encVal);
}
/**
*
用来进行解密的操作
*
*
@param encryptedData
*
@return
*
@throws Exception
*/
public String
decrypt(String encryptedData) throws Exception
{
Key
key = new SecretKeySpec(keyValue,
KEY_ALGORITHM);
Cipher
c = Cipher.getInstance(KEY_ALGORITHM);
c.init(Cipher.DECRYPT_MODE,
key);
byte []
decordedValue = new BASE64Decoder().decodeBuffer(encryptedData);
byte []
decValue = c.doFinal(decordedValue);
return new String(decValue);
}
//
加密算法
private String
KEY_ALGORITHM =
"xxx" ;
//加密密钥
private static final byte []
keyValue =
"xxx" .getBytes();
}
|
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Security.Cryptography;
using
System.IO;
//
加密
public static string
Encrypt(string toEncrypt, string key)
{
byte []
keyArray = UTF8Encoding.UTF8.GetBytes(key);
byte []
toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
RijndaelManaged
rDel = new RijndaelManaged();
rDel.Key
= keyArray;
rDel.Mode
= CipherMode.ECB;
rDel.Padding
= PaddingMode.PKCS7;
ICryptoTransform
cTransform = rDel.CreateEncryptor();
byte []
resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0 ,
toEncryptArray.Length);
return Convert.ToBase64String(resultArray, 0 ,
resultArray.Length);
}
//
解密
public static string
Decrypt(string toDecrypt, string key)
{
byte []
keyArray = UTF8Encoding.UTF8.GetBytes(key);
byte []
toEncryptArray = Convert.FromBase64String(toDecrypt);
RijndaelManaged
rDel = new RijndaelManaged();
rDel.Key
= keyArray;
rDel.Mode
= CipherMode.ECB;
rDel.Padding
= PaddingMode.PKCS7;
ICryptoTransform
cTransform = rDel.CreateDecryptor();
byte []
resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0 ,
toEncryptArray.Length);
return UTF8Encoding.UTF8.GetString(resultArray);
}
|
//
加密
private function encrypt
($str)
{
$size
= mcrypt_get_block_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_ECB);
$pad
= $size - (strlen($str) % $size);
$str
= $str . str_repeat(chr($pad), $pad);
$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,'加密密钥(替换)', $iv);
$cyper_text
= mcrypt_generic($td, $str);
$ret
= base64_encode($cyper_text);
mcrypt_generic_deinit
($td);
mcrypt_module_close($td);
return $ret
;
}
//
解密
private function
decrypt($str)
{
$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,'加密密钥(替换)',$iv);
$b64 = base64_decode($str);
$decrypted_text = mdecrypt_generic($td,$b64);
$pad = ord($decrypted_text{strlen($decrypted_text) - 1});
$ret = substr($decrypted_text, 0, -1 * $pad);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $ret;
}
|