用AES加密字符串,再解密后,解密出的字符串只有最初字符串的前8位了,8位以后的字符都丢掉了,请问是怎么回事?比如我要加密"1234567890",再解密后,只剩下"12345678"了。是不是类本身的限制,还是我代码里面限制了?以下是我的代码。public string AESEncrypt (AES.KeySize keySize, string Input)
{
byte[] input = new byte[16];
byte[] output = new byte[16];
AES aes = new AES (keySize, new byte[16]);
input = Encoding.Unicode.GetBytes (Input.PadRight (8, ' '));
aes.Cipher (input, output);
return Encoding.Unicode.GetString (output);
}public string AESDecode(AES.KeySize keySize,string Input)
{
byte[] input = new byte[16];
byte[] output = new byte[16];
input = Encoding.Unicode.GetBytes(Input);
AES aes = new AES(keySize,new byte[16]);
aes.InvCipher(input,output);
return Encoding.Unicode.GetString(output);
}//点击按钮加密
private void Button1_Click(object sender, System.EventArgs e)
{
Label1.Text = AESEncrypt(Namespace.AES.KeySize.Bits256 ,TextBox1.Text);
}//点击按钮解密
private void Button2_Click(object sender, System.EventArgs e)
{
Label2.Text = AESDecode(Namespace.AES.KeySize.Bits256, AESEncrypt(Namespace.AES.KeySize.Bits256 ,TextBox1.Text));
}
{
byte[] input = new byte[16];
byte[] output = new byte[16];
AES aes = new AES (keySize, new byte[16]);
input = Encoding.Unicode.GetBytes (Input.PadRight (8, ' '));
aes.Cipher (input, output);
return Encoding.Unicode.GetString (output);
}public string AESDecode(AES.KeySize keySize,string Input)
{
byte[] input = new byte[16];
byte[] output = new byte[16];
input = Encoding.Unicode.GetBytes(Input);
AES aes = new AES(keySize,new byte[16]);
aes.InvCipher(input,output);
return Encoding.Unicode.GetString(output);
}//点击按钮加密
private void Button1_Click(object sender, System.EventArgs e)
{
Label1.Text = AESEncrypt(Namespace.AES.KeySize.Bits256 ,TextBox1.Text);
}//点击按钮解密
private void Button2_Click(object sender, System.EventArgs e)
{
Label2.Text = AESDecode(Namespace.AES.KeySize.Bits256, AESEncrypt(Namespace.AES.KeySize.Bits256 ,TextBox1.Text));
}
解决方案 »
- .NET中DateTime类型的空怎么表示?
- 求助,下载了带后台的码源,导航文字不能改动,改一个字就乱码
- C#转JSON的方法
- 看看程序错在哪里
- 请问ASP.NET中的Bitmap对像在ASP中如何使用,或有什么替代方法
- 向你推荐一个最好的ASP.NET空间
- asp.net 2.0中主从表的设计
- 有没有能自动弹出页面的函数??
- ValidateRequest="false" 在win7iis下无效。在线等,求高手解决。
- ASP显示ACCESS中保存的OLE图片时出错
- 想通过DataView的RowFilter属性来筛选null列
- 用 FileStream 处理二进制文件,和 用 BinaryReader,BinaryWriter 处理二进制,有啥区别呀????
没有限制是八位啊!
不过你这句话??
input = Encoding.Unicode.GetBytes (Input.PadRight (8, ' '));