日期:2014-05-20  浏览次数:20686 次

哪位高手帮我用java实现一下这段PB的加密解密方法,非常感谢!
下面这段代码为PB代码,是实现密码加密和解密的。小弟现在需要用java来实现!哪位高手帮忙一下。非常感谢!

string ls_lockpasswd,ls_unlockpasswd,ls_returnpasswd,ls_tmppwd
string ls_serialno[],ls_tmpserialno,ls_run
int li_i,li_j,li_time,li_pwdlen,li_partpwdlen
string ls_mod = '!'
//vs_passwd='ABCDEF'
if lower(vs_runway) = 'lock' then    //给可见密码加密变为隐形密码
li_pwdlen = len(vs_passwd)
if li_pwdlen < 1 or isnull(vs_passwd) then
messagebox('提示','传入错误的可见密码!')
return '-1'
end if
   if mod(li_pwdlen,2) <> 0 then
      ls_mod = '^'
vs_passwd = ls_mod + vs_passwd
li_pwdlen = len(vs_passwd)
end if
   li_partpwdlen = 0.5*li_pwdlen

//1.随机产生n位的序列号码
li_j = 1
do while li_j <= 144
ls_serialno[li_j] = ''
   li_i = 1
   ls_run = 'T' 
do while li_i <= li_pwdlen 
  do while ls_run = 'T'   
  ls_tmpserialno = char(64+Rand(li_pwdlen))      
  if  pos(ls_serialno[li_j],ls_tmpserialno) > 0 then
ls_run = 'T'
  else
ls_run = 'F'
  end if
  loop
  ls_serialno[li_j] = ls_serialno[li_j]+ls_tmpserialno
  li_i = li_i + 1
  ls_run = 'T'
loop
li_j = li_j + 1
loop
li_time =integer(mid(string(now(),'hh:mm:ss'),1,2)) +integer(mid(string(now(),'hh:mm:ss'),4,2))+integer(mid(string(now(),'hh:mm:ss'),7,2))
if li_time = 0 then
li_time = rand(144)
end if
   //ls_serialno[li_time]='645231'

//2.按随机产生n位的序列号码给可见密码重新排序
li_i = 1
ls_tmppwd=''
do while li_i <= li_pwdlen
ls_tmppwd=ls_tmppwd+mid(ls_serialno[li_time],li_i,1)+mid(vs_passwd,asc(mid(ls_serialno[li_time],li_i,1))- 64,1)
      li_i = li_i +1
loop

   //ls_tmppwd='3C4D1A2B6F5E'
ls_lockpasswd=''
if mod(asc(mid(ls_tmppwd,1,1)), 2 ) = 0 then
li_i = 1
do while  li_i <= li_partpwdlen
//one=one+two
ls_lockpasswd=ls_lockpasswd+right('000'+string(asc(mid(ls_tmppwd,(li_i - 1)*4+1,1))+asc(mid(ls_tmppwd,(li_i -  1)*4+2,1))),3)
//two=two
ls_lockpasswd=ls_lockpasswd+right('000'+string(asc(mid(ls_tmppwd,(li_i -  1)*4+2,1))),3)
//three=three
ls_lockpasswd=ls_lockpasswd+right('000'+string(asc(mid(ls_tmppwd,(li_i -  1)*4+3,1))),3)
//four=three+four
ls_lockpasswd=ls_lockpasswd+right('000'+string(asc(mid(ls_tmppwd,(li_i -  1)*4+3,1))+asc(mid(ls_tmppwd,(li_i -  1)*4+4,1))),3)

li_i= li_i + 1

   loop
else
li_i = 1
do while  li_i <= li_partpwdlen
//one=one改到这里201211221809
ls_lockpasswd=ls_lockpasswd+right('000'+string(asc(mid(ls_tmppwd,(li_i -  1)*4+1,1))),3)
//two=one+two
ls_lockpasswd=ls_lockpasswd+right('000'+string(asc(mid(ls_tmppwd,(li_i -  1)*4+1,1))+asc(mid(ls_tmppwd,(li_i -  1)*4+2,1))),3)