怎么把这段JAVA转换为delphi
如何把这段JAVA转换为delphi
------解决方案--------------------
不懂java,尝试写了下,不知对错,希望没有误导汝,错了LX给修正
public class EncryptUtil
{
public EncryptUtil()
{
}
public long epass()
{
long mc = 0x8dfe657a719L;
String ppass = "test";
long plen = ppass.length();
for (int i = 0; (long)i < plen; i++)
mc ^= ppass.charAt(i) | 0x80;
return mc;
}
public String encrypt(String inString)
{
long nPwd = epass();
char cpass[] = new char[inString.length()];
String strTemp = "";
for (int i = 0; i < inString.length(); i++)
{
cpass[i] = inString.charAt(i);
cpass[i] ^= nPwd;
cpass[i] &= '\377';
}
for (int i = 0; i < cpass.length; i++)
strTemp = (new StringBuilder(String.valueOf(strTemp))).append(cpass[i]).toString();
return strTemp;
}
}
------解决方案--------------------
不懂java,尝试写了下,不知对错,希望没有误导汝,错了LX给修正
type
TEncryptUtil = class
public
function Epass: Int64;
function Encrypt(inString: AnsiString): AnsiString;
end;
function TEncryptUtil.Encrypt(inString: AnsiString): AnsiString;
var
nPwd: Int64;
cpass: array of AnsiChar;
i, len: Integer;
begin
Result := '';
nPwd := Epass;
len := Length(inString);
SetLength(cpass, len);
ZeroMemory(cpass, Length(cpass));
for i := 0 to len - 1 do
begin
cpass[i] := inString[i + 1];
cpass[i] := Chr(Ord(cpass[i]) xor nPwd);
cpass[i] := Chr(Ord(cpass[i]) and 377);
end;
len := Length(cpass);
for i := 0 to len - 1 do
Result := Result + cpass[i];
end;
function TEncryptUtil.Epass: Int64;
var
ppass: AnsiString;
pLen: Int64;
i: Integer;
begin
Result := $8DFE657A719;
ppass := 'test';
pLen := Length(ppass);
for i := 0 to pLen - 1 do
Result := Result xor (Byte(ppass[i + 1]) or $80);
end;