java代码如下:
public static String DecodePasswd(String varCode)
{
String des = new String();
String strKey = new String();
if(varCode == null || varCode.length() == 0)
return "";
strKey = "zxcvbnm,./asdfghjkl;'qwertyuiop[]\\1234567890-=` ZXCVBNM<>?:LKJHGFDSAQWERTYUIOP{}|+_)(*&^%$#@!~";
if(varCode.length() % 2 == 1)
varCode = String.valueOf(String.valueOf(varCode)).concat("?");
des = "";
int n;
for(n = 0; n <= varCode.length() / 2 - 1; n++)
{
char b = varCode.charAt(n * 2);
int a = strKey.indexOf(varCode.charAt(n * 2 + 1));
des = String.valueOf(des) + String.valueOf((char)(b ^ a));
}
n = des.indexOf(1);
if(n > 0)
return des.substring(0, n);
else
return des;
}
以上这段代码在翻译成delphi中,我翻译的如下:function TForm1.Translate(varCode: string): string;
var
des,strKey,b: string;
n,a,changdu: integer;
begin
changdu:= length(varcode);
//怎么定义下边这个字符串
//strKey = 'zxcvbnm,./asdfghjkl;'qwertyuiop[]\\1234567890-=` ZXCVBNM<>?:LKJHGFDSAQWERTYUIOP{}|+_)(*&^%$#@!~';
if (varcode='') or (changdu<=0) then
result:=''
else begin
if (changdu mod 2=1) then varcode:= concat(varcode,'?');
for n:=0 to (changdu div 2) -1 do
begin
b:= copy(varcode,1,n*2); //
a:= pos(strkey,copy(varcode,1,n*2+1)); //
//des的值,下面这句应该怎么写?
des:= strtoint(des)+
end;
end;
//下面该怎么写?
result:= des;谢谢!
public static String DecodePasswd(String varCode)
{
String des = new String();
String strKey = new String();
if(varCode == null || varCode.length() == 0)
return "";
strKey = "zxcvbnm,./asdfghjkl;'qwertyuiop[]\\1234567890-=` ZXCVBNM<>?:LKJHGFDSAQWERTYUIOP{}|+_)(*&^%$#@!~";
if(varCode.length() % 2 == 1)
varCode = String.valueOf(String.valueOf(varCode)).concat("?");
des = "";
int n;
for(n = 0; n <= varCode.length() / 2 - 1; n++)
{
char b = varCode.charAt(n * 2);
int a = strKey.indexOf(varCode.charAt(n * 2 + 1));
des = String.valueOf(des) + String.valueOf((char)(b ^ a));
}
n = des.indexOf(1);
if(n > 0)
return des.substring(0, n);
else
return des;
}
以上这段代码在翻译成delphi中,我翻译的如下:function TForm1.Translate(varCode: string): string;
var
des,strKey,b: string;
n,a,changdu: integer;
begin
changdu:= length(varcode);
//怎么定义下边这个字符串
//strKey = 'zxcvbnm,./asdfghjkl;'qwertyuiop[]\\1234567890-=` ZXCVBNM<>?:LKJHGFDSAQWERTYUIOP{}|+_)(*&^%$#@!~';
if (varcode='') or (changdu<=0) then
result:=''
else begin
if (changdu mod 2=1) then varcode:= concat(varcode,'?');
for n:=0 to (changdu div 2) -1 do
begin
b:= copy(varcode,1,n*2); //
a:= pos(strkey,copy(varcode,1,n*2+1)); //
//des的值,下面这句应该怎么写?
des:= strtoint(des)+
end;
end;
//下面该怎么写?
result:= des;谢谢!
解决方案 »
- delphi TcxPropertiesStore
- IXMLHTTPRequest如果在delphi中使用,要引用哪个单元?
- 关于tchart画线问题。
- 竞岗失败,散分!
- 为何在用Query时不能修改记录呢?
- 数据问题??一定给分呀??快呀??
- 100高分求救!!斑竹救命:ocx应用中用opendialog提取打开的文件名字是一串乱码(exe文件时是正常的)。请问有谁碰过这种情况吗?请问要
- 这里有谁做过点对点的局域网音视频传输/回放?最简单的方案是什么?
- 欢迎DELPHI爱好者加入DELPHI技术交流QQ群:31083104!
- ?????哪里有售外文的好书,关于DELPHI的?
- 想做一个红绿灯不停闪烁的界面,不知怎么样做才好
- 请问哪里可以下载Delphi帮助中文版的????请告诉具体网址,thanks!
var
des, strKey: string;
n, a, changdu: integer;
b: char;
begin
changdu := length(varcode); strKey =
QuotedStr('zxcvbnm,./asdfghjkl;''qwertyuiop[]\\1234567890-=` ZXCVBNM<>?:LKJHGFDSAQWERTYUIOP{}|+_)(*&^%$#@!~');
if (varcode = '') or (changdu <= 0) then
begin
result := '';
exit;
end; if ((changdu mod 2) = 1) then varCode := varCode + '?'; for n := 0 to (changdu div 2) - 1 do
begin
b := Ord(varcode[n * 2]); //這裹要修改, 從1開始取值
a := Pos(varcode[n * 2 + 1], strKey);
des := Des + intToStr(b * a);
end;
result := des;
end;