string srcText = "Hello,world!";//将字符串化为byte数组.
byte[] buffer = System.Text.Encoding.Default.GetBytes( srcText );
strSQL="INSERT INTO memb_info (account,password) VALUES('"+account+"',@password)";SqlCommand cmd = new SqlCommand();
cmd.CommandText = strSQL;
//使用参数将binary array插入到数据库中
((SqlParameter)cmd.Parameters.Add(new SqlParameter("@password", SqlDbType.Binary))).Value = Buffer;
cmd.Connection = cn;
cmd.ExecuteNonQuery();

解决方案 »

  1.   

    Encoding.Default.GetBytes( YourString );
      

  2.   

    直接把你的数据库设计成varchar不就可以了吗?
    反正里面存放的加密的字符串
    你管它是否是2进制呢
    别人都看不懂
    Insert的时候,直接str="INSERT INTO memb_info (account,password) VALUES('"+account+"','"+password+"')";
    password就是加密过的字符串
      

  3.   

    给大家看一下加密部分<%
    public function encrypt(password)
    dim key(16)
    dim one,two,three,four
    dim i
    dim dstbytes(16) bu_String2Bytes password, key
    bu_String2Bytes password, dstbytes

    one= bu_Bytes2Int(key, 0) * 213119 + 2529077
    one = one - Fix(one/ 4294967296) * 4294967296
    two = bu_Bytes2Int(key, 4) * 213247 + 2529089
    two = two - Fix(two/ 4294967296) * 4294967296
    three = bu_Bytes2Int(key, 8) * 213203 + 2529589
    three = three - Fix(three/ 4294967296) * 4294967296
    four = bu_Bytes2Int(key, 12) * 213821 + 2529997
    four = four - Fix(four/ 4294967296) * 4294967296
    call MyuwSplit(one, key(0), key(1), key(2), key(3))
    call MyuwSplit(two, key(4), key(5), key(6), key(7))
    call MyuwSplit(three, key(8), key(9), key(10), key(11))
    call MyuwSplit(Four, key(12), key(13), key(14), key(15)) dstbytes(0) = dstbytes(0) xor key(0) for i=1 to 15
    dstbytes(i) = dstbytes(i) xor dstbytes(i-1) xor key(i and 15)
    next for i=0 to 15
    if dstbytes(i) = 0 then
    dstbytes(i) = &H66
    end if
    next encrypt = "0x"
    for i=0 to 15 
    if dstbytes(i) < &H10 then
    encrypt = encrypt & "0" & Hex(dstbytes(i))
    else
    encrypt = encrypt & Hex(dstbytes(i))
    end if
    next
    end functionPublic Sub MyuwSplit(ByRef w, a, b, C, d)
        d = Fix(w / &H1000000)
        c = Fix((w - d * &H1000000) / &H10000)
        b = Fix((w - d * &H1000000 - c * &H10000) / &H100)
        a = Fix((w - d * &H1000000 - c * &H10000 - b * &H100))
    End Subpublic Function bu_Bytes2Int(aBytes(), index)
    dim rslt
    rslt = aBytes(index) + aBytes(index+1)*256 + aBytes(index+2)*65536 + aBytes(index+3)*16777216 bu_Bytes2Int = rslt
    End FunctionPublic Function bu_String2Bytes(str, aBytes())
        nBytes = Len(str)
        For i = 0 To nBytes - 1
            aBytes(i) = Asc(Mid(str, i + 1, 1))
        Next    bu_String2Bytes = nBytesEnd Function%>
      

  4.   

    有问题阿,  为什么存放到 数据库后 值改变了?
    Response.Write(encrypt("12345678"));
    //结果   B53AA2DEE7076136039ABCBC71EBCDCD   也就是 0xB53AA2DEE7076136039ABCBC71EBCDCD
     
    byte[] buffer1 = System.Text.Encoding.Default.GetBytes(encrypt("12345678"));
    Response.Write("<br>");
    Response.Write(System.Text.Encoding.Default.GetString(buffer1));
    //结果  B53AA2DEE7076136039ABCBC71EBCDCD 
    但是数据库中的存储数据
    0x00000000000000000000000000BC614E