数据库的一个字段为binary,用于存储des加密后的字节数组
数据库对一般的字节数组写入,读出没问题,
但是对于加密后的字节数组,从数据库读出后解密会出现无效的数据格式的异常。
(加密算法是对的,在没有数据库操作的时候验证过)
怀疑是编码问题,我用的是default编码。
望高手指点。
数据库对一般的字节数组写入,读出没问题,
但是对于加密后的字节数组,从数据库读出后解密会出现无效的数据格式的异常。
(加密算法是对的,在没有数据库操作的时候验证过)
怀疑是编码问题,我用的是default编码。
望高手指点。
你试试用des加密一个字符串再解密,看是否能解,
解密时先把base64转换成字节数组
using System;
using System.Text;
using System.Security.Cryptography;
class dsacrypto_SignData {
public static void Main(String[] args){
//先要将字符串转换为字节数组,这与编码有关。
String str = "this is a test.";
byte[] bytes = Encoding.ASCII.GetBytes(str);
//选择签名方式,有RSA和DSA
DSACryptoServiceProvider dsac = new DSACryptoServiceProvider();
byte[] sign = dsac.SignData(bytes);
//sign便是出来的签名结果。 //下面是认证了
DSACryptoServiceProvider dsac2 = new DSACryptoServiceProvider();
dsac2.FromXmlString(dsac.ToXmlString(false));
bool ver = dsac2.VerifyData(bytes, sign);
if (ver) {
Console.WriteLine("通过");
} else {
Console.WriteLine("不能通过");
}
}
}