各位大大些,帮忙啊
遇到的问题是这样的
先说数据库是sqlserver的,密码字段是 varbinary(16),
现在是通过网站注册,然后用注册的账号在客户端软件上登录
以前网站是PHP的,是这样转密码的:
$EncTable = array('!'=>'95', '"'=>'88', '#'=>'9D', '$'=>'4C', '%'=>'F2',
'&'=>'3E', '\''=>'BB', '('=>'C0', ')'=>'7F', '*'=>'18', '+'=>'70',
','=>'A6', '-'=>'E2', '.'=>'EC', '/'=>'77',
'0'=>'2C', '1'=>'3A', '2'=>'4A', '3'=>'91',
'4'=>'5D', '5'=>'7A', '6'=>'29', '7'=>'BC', '8'=>'6E', '9'=>'D4', ':'=>'40',
';'=>'17', '<'=>'2E', '='=>'CB', '>'=>'72', '?'=>'9C',
'@'=>'A1', 'A'=>'FF', 'B'=>'F3', 'C'=>'F8',
'D'=>'9B', 'E'=>'50', 'F'=>'51', 'G'=>'6D', 'H'=>'E9', 'I'=>'9A', 'J'=>'B8',
'K'=>'84', 'L'=>'A8', 'M'=>'14', 'N'=>'38', 'O'=>'CE',
'P'=>'92', 'Q'=>'5C', 'R'=>'F5', 'S'=>'EE',
'T'=>'B3', 'U'=>'89', 'V'=>'7B', 'W'=>'A2', 'X'=>'AD', 'Y'=>'71', 'Z'=>'E3',
'['=>'D5', '\'=>'BF', ']'=>'53', '^'=>'28', '_'=>'44',
'`'=>'33', 'a'=>'48', 'b'=>'DB', 'c'=>'FC',
'd'=>'09', 'e'=>'1F', 'f'=>'94', 'g'=>'12', 'h'=>'73', 'i'=>'37', 'j'=>'82',
'k'=>'81', 'l'=>'39', 'm'=>'C2', 'n'=>'8D', 'o'=>'7D',
'p'=>'08', 'q'=>'4F', 'r'=>'B0', 's'=>'FE',
't'=>'79', 'u'=>'0B', 'v'=>'D6', 'w'=>'23', 'x'=>'7C', 'y'=>'4B', 'z'=>'8E',
'{'=>'06', '|'=>'5A', '}'=>'CC', '~'=>'62');
他把转之后的就可以把这个存进数据库了,比如输入8,存入数据库的是 6E 的byte值
从数据库里取出来也是6E,这个时候客户端取出来是6E
就是说客户端也是把数据库的值按16进制读取的,但是8的16进制的值又不是6E。
现在网站换成jsp的了,用hibernate,这时用户输入8,我该怎么存,才能让客户端软件取出来是6E呢?
"8".getBytes();肯定是不行的,这个存进去是56,出来肯定就不对了;
但是我又不能直接存"6E".getBytes();
搞一天了。
大大些帮忙啊