加密解密:PB连接描述文件的密码加密及其解密原理

  阐述PB开发环境下数据库连接描述文件密码加密和解密原理加密原理:首先将原串反转(reverse)逐个取ASCII并由10进制转为16进制值然后转为小写最后末尾加'00'作为结束符解密原理:去掉末尾'00'将原串反转(reverse)每2个由16进制转为10进制值即ASCII值根据ASCII取累积到这就是真正登录密码

  在PB开发环境下要连接数据库必须预先创建个描述文件该描述文件条目写在注册表HKEY_CURRENT_USERSoftwareSybasePowerBuilder9.0DatabaseProfilesPowerBuilder下(区别PB版本区别键路径)每个描述文件对应个注册表项目描述文件内容如用户名称和密码作为注册键存储在对应注册表项目下除了数据库密码和登录密码外数据未加密经过简单摸索发现PB在对登录密码加密、解密方面其实很简单

  其加密原理可以这样描述首先将原串反转(reverse)逐个取ASCII并由10进制转为16进制值然后转为小写最后末尾加‘00’作为结束符

  了解了其加密原理后就很容易推断其解密原理其解密原理可以这样描述去掉末尾‘00'将原串反转(reverse)每2个由16进制转为10进制值即ASCII值根据ASCII取累积到这就是真正登录密码

  附后可以作为解密参考代码(开发环境:PB9)你可以在PB开发环境下不输入用户名称或(和)密码直接进入系统避免复杂密码记忆方便开发人员运行、测试系统

  另外Jaguar服务器描述文件密码也采用相同加密和解密机制只是存放注册表路径不样而已

  最后提醒读者不要将代码用于非法用途由此带来后果或法律纠纷本人概不负责

  附:解密源代码:

/****************************************
名称:f_decryptpbpassword
参数: as_orginalpassword 原始密码
返回值: 解密后文本
功能描述:解密PB数据库连接描述密码
创建人: 康剑民
创建日期:2006-04-27
版本号: V1.0
*****************************************/
ls_temp,ls_=''
eger i,li_count,li_ascii
nvo_numerical lnv_numerical
len(as_orginalpassword) < 2
or as_orginalpassword = '00' then ''
as_orginalpassword = left(reverse(as_orginalpassword),
len(as_orginalpassword) - 2)
li_count = ceiling(len(as_orginalpassword) / 2)
for i = 1 to li_count
  ls_temp = mid(as_orginalpassword,(i - 1) * 2 + 1,2)
  li_ascii = lnv_numerical.of_hextodecimal(ls_temp)
  ls_temp = char(li_ascii) 
  ls_ = ls_ + ls_temp
next
ls_
/********************************************
名称:of_hextodecimal
参数: as_hexdata 16进制数据
返回值: unsignedlong 10进制数据
功能描述:16进制数据转为10进制数据
创建人: 康剑民
创建日期:2006-04-27
版本号:V1.0
*********************************************/
charlch_char
unsignedlong  lul_decimal=0
eger li_dec[48 to 70], i, li_len
for i = 48 To 57
  li_dec[i] = i - 48
next
for i = 65 To 70
  li_dec[i] = i - 55
next
as_hexdata = lower(as_hexdata)
lch_char = as_hexdata
li_len = len (as_hexdata)
for i = 1 to li_len
  choose lch_char[i]
  '0' to '9', 'a' to 'f'
 lul_decimal = lul_decimal * 16 + li_dec[asc(lch_char[i])]
 
  lul_decimal
  end choose
next
lul_decimal


Tags:  加密与解密第三版 加密与解密 加密解密

延伸阅读

最新评论

发表评论