我将一个字符串加密之后得到是byte[],为什么在保存到数据库中之后(字段是Binary)是0x0CC175B9C0F1B6A831C399E26977266100000000000000000000000000000000000000000000000000000000000000000000
这是什么格式?这就是数据库中显示的二进制么,还是又转换过?

解决方案 »

  1.   

    数据库中还是用image类型的字段吧
      

  2.   

    binary 和 varbinary 数据类型存储位串。尽管字符数据根据 Microsoft® SQL Server™ 的代码页进行解释,但 binary 和 varbinary 数据仅仅是一个位流,binary 和 varbinary 数据的长度最多只能是 8,000 字节。二进制常量以 0x(一个零和小写字母x)开始,后面跟着位模式的十六进制表示。例如,0x2A 表示十六进制的值 2A,它等于十进制的数 42 或单字节位模式 00101010。当存储十六进制的数值,比如安全标识号(SID)、GUID(使用 uniqueidentifier 数据类型)或可以用十六进制方式存储的复杂数字时,可使用二进制数据。
      

  3.   

    非常感谢 zhgroup() 的解释和 飘零 的关注.
    不过我还是有些地方不是很明白:就象"但 binary 和 varbinary 数据仅仅是一个位流"这句话里面的"位流"这个术语该怎么解释?还有就是为什么在后面有那么多的"0"呢,是默认填充的么,那这个数据的值又该怎么算?