各位高手:现有一个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=

;
请问如何解决?

解决方案 »

  1.   

    谢谢楼上的各位,字符贴不出来,我截了一张图片,http://8cnc.com.cn/111.jpg数字型的密码加密后没有特殊字符,可以正常连接,但是密码一包括字母,加密后就包含有特殊字符,无法连接了。
      

  2.   

    原来的PB加密函数
    /*在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