各位高手:现有一个Sybase数据库,数据库的用户是由一套MIS程序自动生成的,密码采用以下方式加密。
//---------- 原PB加密 ----------
///*在asc码小于129的范围内进行字符转换,方法为:
// 如果字符的asc码小于101,转换为asc码+28的字符,
// 如果字符的asc码大于100,转换为asc码-100的字符
//*/现在新做个小程序连接数据库,但是密码包含字母时,加密后的密码包含特殊字符,
例如密码
111111=MMMMMM
xinjian=
所以密码包含字母时,连接数据库出错,提示:从索引 60 处开始,初始化字符串的格式不符合规范。出错的连接字符串:
Driver={SYBASE SYSTEM 11};Database=jxyd;Srvr=jxyd;Uid=test;Pwd=
;
请问如何解决?
//---------- 原PB加密 ----------
///*在asc码小于129的范围内进行字符转换,方法为:
// 如果字符的asc码小于101,转换为asc码+28的字符,
// 如果字符的asc码大于100,转换为asc码-100的字符
//*/现在新做个小程序连接数据库,但是密码包含字母时,加密后的密码包含特殊字符,
例如密码
111111=MMMMMM
xinjian=
所以密码包含字母时,连接数据库出错,提示:从索引 60 处开始,初始化字符串的格式不符合规范。出错的连接字符串:
Driver={SYBASE SYSTEM 11};Database=jxyd;Srvr=jxyd;Uid=test;Pwd=
;
请问如何解决?
/*在asc码小于129的范围内进行字符转换,方法为:
如果字符的asc码小于101,转换为asc码+28的字符,
如果字符的asc码大于100,转换为asc码-100的字符
*/string ls_des_string
char lc_source,lc_des
long li,l_lenl_len = len(fs_source)
if l_len = 0 then return null_string
FOR li = 1 TO l_len
lc_source = mid(fs_source,li,1)
if asc(lc_source) < 101 then lc_des = char(asc(lc_source) + 28)
if asc(lc_source) > 100 then lc_des = char(asc(lc_source) - 100)
ls_des_string = ls_des_string + lc_des
NEXT
return ls_des_string