您的位置:首页 > 其它

AES加密解密

2014-09-02 15:21 218 查看
由於 AES 加解密過程中需要兩個位元組陣列: KeyIV 而且必須符合規定的大小

因此這兩個資料,我們可以利用 MD5CryptoServiceProviderRfc2898DeriveBytes 等方式產生雜湊碼

加密 (C#):

01
private
string
enprypt(
string
plainText,
string
key)
02
{
03
AES
=
new
RijndaelManaged();
04
MD5
=
new
MD5CryptoServiceProvider();
05
byte
[]
plainTextData= Encoding.Unicode.GetBytes(plainText);
06
byte
[]
keyData= MD5.ComputeHash( Encoding.Unicode.GetBytes(key));
07
byte
[]
IVData= MD5.ComputeHash(Encoding.Unicode.GetBytes(
"Alex
Lee"
));
08
ICryptoTransform
transform= AES.CreateEncryptor(keyData,IVData);
09
byte
[]
outputData= transform.TransformFinalBlock(plainTextData,0,plainTextData.Length);
10
return
Convert.ToBase64String(output);
11
}
加密 (VB):

01
Private
Function
encrypt(
ByVal
plainText
As
String
,
ByVal
key
As
String
)
As
String
02
Dim
AES
As
New
RijndaelManaged()
03
Dim
MD5
As
New
MD5CryptoServiceProvider()
04
Dim
plainTextData
As
Byte
()
= Encoding.
Unicode
.GetBytes(plainText)
05
Dim
keyData
As
Byte
()
= MD5.ComputeHash(Encoding.
Unicode
.GetBytes(key))
06
Dim
IVData
As
Byte
()
= MD5.ComputeHash(Encoding.
Unicode
.GetBytes(
"Alex
Lee"
))
07
Dim
transform
As
ICryptoTransform
= AES.CreateEncryptor(keyData,IVData)
08
Dim
outputData
As
Byte
()
= transform.TransformFinalBlock(plainTextData,0,plainTextData.Length)
09
encrypt
= Convert.ToBase64String(outputData)
10
End
Function
解密(C#):

01
private
string
decrypt(
byte
[]
cipherTextData,
string
key)
02
{
03
AES
=
new
RijndaelManaged();
04
MD5
=
new
MD5CryptoServiceProvider();
05
byte
[]
keyData= MD5.ComputeHash(Encoding.Unicode.GetBytes(key));
06
byte
[]
IVData= MD5.ComputeHash(Encoding.Unicode.GetBytes(
"Alex
Lee"
));
07
ICryptoTransform
transform= AES.CreateDecryptor(keyData,IVData);
08
byte
[]
outputData= transform.TransformFinalBlock(cipherTextData,0,cipherTextData.Length);
09
return
Encoding.Unicode.GetString(outputData);
10
}
解密(VB):

1
Private
Function
decrypt(
ByVal
cipherTextData
As
Byte
(),
ByVal
key
As
String
)
As
String
2
Dim
AES
As
New
RijndaelManaged()
3
Dim
MD5
As
New
MD5CryptoServiceProvider()
4
Dim
keyData
As
Byte
()
= MD5.ComputeHash(Encoding.
Unicode
.GetBytes(key))
5
Dim
IVData
As
Byte
()
= MD5.ComputeHash(Encoding.
Unicode
.GetBytes(
"Alex
Lee"
))
6
Dim
transform
As
ICryptoTransform
= AES.CreateDecryptor(keyData,IVData)
7
Dim
outputData
As
Byte
()
= transform.TransformFinalBlock(cipherTextData,0,cipherTextData.Length)
8
decrypt
= Encoding.
Unicode
.GetString(outputData)
9
End
Function
C#原始程式檔

VB原始程式檔
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: