안드로이드 개발 질문/답변
(글 수 45,052)
const
C1 = 74102;
C2 = 12337;
function Encrypt(const S: String; Key: Word): String;
var
I: byte;
FirstResult : String;
begin
SetLength(FirstResult, Length(S)); // 문자열의 크기를 설정
for I := 1 to Length(S) do begin
FirstResult[I] := char(byte(S[I]) xor (Key shr 8));
Key := (byte(FirstResult[I]) + Key) * C1 + C2;
end;
Result := ValueToHex(FirstResult);
end;
위의 코드 중에서 char, byte, xor, shr 에 해당하는 연산을 자바에서는 어떻게 할 수 있을까요?
안드로이드에서 어떻게 이 연산을 처리해야 좋을지 조언 부탁드립니다.
감사합니다. 미리~
C1 = 74102;
C2 = 12337;
function Encrypt(const S: String; Key: Word): String;
var
I: byte;
FirstResult : String;
begin
SetLength(FirstResult, Length(S)); // 문자열의 크기를 설정
for I := 1 to Length(S) do begin
FirstResult[I] := char(byte(S[I]) xor (Key shr 8));
Key := (byte(FirstResult[I]) + Key) * C1 + C2;
end;
Result := ValueToHex(FirstResult);
end;
위의 코드 중에서 char, byte, xor, shr 에 해당하는 연산을 자바에서는 어떻게 할 수 있을까요?
안드로이드에서 어떻게 이 연산을 처리해야 좋을지 조언 부탁드립니다.
감사합니다. 미리~
델파이의 String이라면 유니코드가 아니라 멀티바이트일테고.. 자바 스트링은 유니코드니까 바로 쓰지는 못할거고요,
ANSI나 현재 코드페이지 디폴트 인코딩 써서 byte array로 받아온 다음에 작업을 해야 할 겁니다.
바이트 어레이로 받은 다음에 각 바이트에 대해서 (b[i] ^ (key >> 8)) 해주고 이것저것 한 다음에.. valueToHex를 처리해줘야겠네요.
그런데 기분탓인가요? http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=devroom&page=2&wr_id=26579
여기 이미 자바 소스 나와있는 것 같은데..