nvarchar,最好先用base64编码将加密后的字节转换到字符串:
byte[] data = Encrypt(...);//加密
string str = Convert.ToBase64String(data);从数据库取出数据之后,先这样处理一下:
string str = ...//取数据
byte[] data = Convert.FromBase64String(str);

解决方案 »

  1.   

    加密:
    static string Encrypt(string datastr, string keystr) {
    DESCryptoServiceProvider desc = new DESCryptoServiceProvider();//des进行加密byte[] key = System.Text.Encoding.ASCII.GetBytes(keystr);
    byte[] data = System.Text.Encoding.Unicode.GetBytes(datastr);MemoryStream ms = new MemoryStream();//存储加密后的数据
    CryptoStream cs = new CryptoStream(ms,desc.CreateEncryptor(key, key),CryptoStreamMode.Write);cs.Write(data, 0, data.Length);//进行加密
    cs.FlushFinalBlock();return System.Convert.ToBase64String(ms.ToArray());//取加密后的数据
    }解密:
    static string Decrypt(string datastr, string keystr) {
    byte[] data = System.Convert.FromBase64String(datastr);DESCryptoServiceProvider desc = new DESCryptoServiceProvider();byte[] key = System.Text.Encoding.ASCII.GetBytes(keystr);MemoryStream ms = new MemoryStream();//存储解密后的数据
    CryptoStream cs = new CryptoStream(ms,desc.CreateDecryptor(key, key),CryptoStreamMode.Write);cs.Write(data, 0, data.Length);//解密数据
    cs.FlushFinalBlock();return System.Text.Encoding.Unicode.GetString(ms.ToArray());
    }
      

  2.   

    转换成字符串后用varchar存就行吧。
      

  3.   

    xixigongzhu(夕夕公主) 说的对,是stream,为了不同系统中传输,可以将其变为base64.
      

  4.   

    我用varchar型存了不行,看来只能用nvarchar