下面这段代码为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)
//three=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)
         //four=four
ls_lockpasswd=ls_lockpasswd+right('000'+string(asc(mid(ls_tmppwd,(li_i -  1)*4+4,1))),3)

li_i= li_i + 1
   loop
end if
if ls_mod = '^' then
   ls_lockpasswd=ls_mod+right('000'+string(asc(mid(ls_tmppwd,1,1))),3)+ls_lockpasswd
else
ls_lockpasswd=right('000'+string(asc(mid(ls_tmppwd,1,1))),3)+ls_lockpasswd
end if
   ls_returnpasswd = ls_lockpasswdelseif lower(vs_runway) = 'unlock' then //给隐形密码解密变为可见密码
if mid(vs_passwd,1,1) = '^' then
   li_pwdlen = len(vs_passwd) - 4
ls_mod = '^'
else
li_pwdlen = len(vs_passwd) - 3
ls_mod = '!'
end if
if mod(li_pwdlen,6) <> 0 or li_pwdlen < 9 or isnull(vs_passwd) then
messagebox('提示','传入错误的隐形密码!')
return '-1'
end if if mid(vs_passwd,1,1) = '^' then
li_pwdlen = mod(asc(char(integer(mid(vs_passwd,2,3)))),2)
vs_passwd=mid(vs_passwd,5)
else
li_pwdlen = mod(asc(char(integer(mid(vs_passwd,1,3)))),2)
vs_passwd=mid(vs_passwd,4)
end if    if li_pwdlen = 0 then
   li_pwdlen = len(vs_passwd)
      li_partpwdlen = li_pwdlen / 12
     ls_tmppwd=''
li_i = 1
do while  li_i <= li_partpwdlen
/*
one=one+two
two=two
three=three
four=three+four
*/

//one=one - two
ls_tmppwd=ls_tmppwd+char(integer(mid(vs_passwd,(li_i -  1)*12+1,3)) - integer(mid(vs_passwd,(li_i -  1)*12+4,3)))
         //tow=two
ls_tmppwd=ls_tmppwd+char(integer(mid(vs_passwd,(li_i -  1)*12+4,3)))
//three=three
ls_tmppwd=ls_tmppwd+char(integer(mid(vs_passwd,(li_i -  1)*12+7,3)))
         //four=four - three
ls_tmppwd=ls_tmppwd+char(integer(mid(vs_passwd,(li_i -  1)*12+10,3)) - integer(mid(vs_passwd,(li_i -  1)*12+7,3)))

li_i= li_i + 1
   loop
   else
   li_pwdlen = len(vs_passwd)
      li_partpwdlen = li_pwdlen / 12
     ls_tmppwd=''
li_i = 1 /* one=one
two=one+two
three=three+four
four=four
      */
do while  li_i <= li_partpwdlen
//one=one
ls_tmppwd=ls_tmppwd+char(integer(mid(vs_passwd,(li_i -  1)*12+1,3)))
//two=two - one
ls_tmppwd=ls_tmppwd+char(integer(mid(vs_passwd,(li_i -  1)*12+4,3)) - integer(mid(vs_passwd,(li_i -  1)*12+1,3)))
         //three=three - four
ls_tmppwd=ls_tmppwd+char(integer(mid(vs_passwd,(li_i -  1)*12+7,3)) - integer(mid(vs_passwd,(li_i -  1)*12+10,3)))
         //four=four
ls_tmppwd=ls_tmppwd+char(integer(mid(vs_passwd,(li_i -  1)*12+10,3)))

li_i= li_i + 1
   loop
   end if
   //ls_tmppwd='6F4D5E2B3C1A'  
li_i = 1
li_partpwdlen  = li_partpwdlen * 2
ls_unlockpasswd=space(li_partpwdlen)
do while li_i <= li_partpwdlen 
li_j = asc(mid(ls_tmppwd,(li_i - 1)*2 + 1,1)) - 64
ls_unlockpasswd = Replace(ls_unlockpasswd, li_j, 1, mid(ls_tmppwd,li_i*2,1))
      li_i = li_i +1
loop
//ls_unlockpasswd='ABCDEF'
if  ls_mod = '^' then
       ls_returnpasswd = mid(ls_unlockpasswd,2)
else
       ls_returnpasswd = ls_unlockpasswd
end if
end if
return ls_returnpasswd