发现一个sqlite的数据库中的一个字段 存储的全是数字和字母,但用其本身的程序调出来的都是汉字,对照如下:400万 91F513700CBF
700万 8DF410737327
1970 55B6DA2163
75% EF1779ADFD78
50.267.45.128 D13752B3D74FC4B1D53E5FA2958F
科学技术 5828DB9E74706F795F
巫峡 79786506F7
自己的住房 7D650FF881767912830EFE请教这些是如何编码的呢
700万 8DF410737327
1970 55B6DA2163
75% EF1779ADFD78
50.267.45.128 D13752B3D74FC4B1D53E5FA2958F
科学技术 5828DB9E74706F795F
巫峡 79786506F7
自己的住房 7D650FF881767912830EFE请教这些是如何编码的呢
-------------------------------------------
编码前 编码后
-------------------------------------------
400万 91F513700CBF
700万 8DF410737327
1970 55B6DA2163
75% EF1779ADFD78
50.267.45.128 D13752B3D74FC4B1D53E5FA2958F
科学技术 5828DB9E74706F795F
巫峡 79786506F7
自己的住房 7D650FF881767912830EFE
---------------------------------------------请教这些是如何编码的呢
System.Web.HttpUtility.UrlEncode(string, System.Text.UnicodeEncoding.GetEncoding("gb2312")).ToUpper();
如果是的话,大致的编码方式就可以猜到了
但是,400万 91F513700CBF 这个和你给的 500万的编码差不多,估计有可能是
麻烦6楼兄弟说说如何编码的,谢谢了
(“500万”这个本身就是从“400万”推测出来的,像是肯定的)
百度的编码方式是:
System.Web.HttpUtility.UrlEncode(string, System.Text.UnicodeEncoding.GetEncoding("gb2312")).ToUpper();
汉字转换为十六进制
string str = "巫峡";
char[] cs = str.ToCharArray(); string hxstr = "";
for (int i =0;i< cs.Length; i++ )
{
hxstr += ((int)cs[i]).ToString("X2");
}
Response.Write(hxstr);
大致的编码思路是:
第一位随机数,当做初始化向量(也就是对称加密的IV)
后面的加密内容,每一个Byte做一次对称加密,加密算法还要推敲一下,字符估计是ANSI编码的
最后把加密得到的Byte转成16进制保存到数据库