어제 질문을 올렸었는데 제가 원하는 답변이 되질않아서 이렇게 다시 올립니다.
스플레쉬 폼 다음에 사용자이름, 암호를 입력해서 로그인하는 폼을 만들려고 하는데요
암호랑 사용자이름 그냥 저장하면 볼 수도 있잖아요..그래서 암호화/복호화 한다는데
구체적으로 어떻게해야 하는지...?? 그리고 사용자가 암호를 변경할 수도 있잖아요..
이런 전반적인 방법을 구체적으로 알고싶은데요...
첨에 사용자가 이름이랑 암호를 어떻게 넣게해야하는지..??
도저히 감이 오질않아서....좀 자세하게 부탁드립니다..
즐거운 주말되시구요...그럼 20000
좋은 성과 있으시길 빕니다. 아래는 영대님의 팁을 이용해 디비를 이용한 암호 알고리즘입니다. 참고하십시요.
암호 확인시......
table1.IndexFieldNames :='name';
table1.setkey;
if table1.FindKey([edit1.text])= false then begin
showmessage('이름이 존재하지 않습니다.');
exit;
end;
pass := Decrypt(table1password.value, MY_KEY);
if pass = edit2.Text then
form2.ShowModal;
암호 입력시...........
Table1Password.Value := Encrypt(edit2.Text, MY_KEY);
Table1.Post;
//암호화 알고리즘
function TForm1.Decrypt(const S: String; Key: Word): String;
var
i: byte;
sDecrypt, rDecrypt, temp: String;
begin
rDecrypt := '';
if S = '' then
begin
Decrypt := '';
System.Exit;
end;
i := 1;
repeat
temp := Copy(S, i, 3); // 한문자당 3자리 숫자로 저장되어 있다
rDecrypt := rDecrypt + Chr(StrToIntDef(temp, 0)); // ASCII값을 구한다
i := i + 3;
until i > Length(S);
sDecrypt := '';
for i := 1 to Length(rDecrypt) do
begin
sDecrypt := sDecrypt + char(byte(rDecrypt[i]) xor (Key shr 8));
Key := (byte(rDecrypt[i]) + Key) * C1 + C2;
end;
Result := sDecrypt;
end;
//복호화 알고리즘
function TForm3.Encrypt(const S: String; Key: Word): String;
var
i: byte;
sEncrypt, rEncrypt: String;
rChar: Char;
begin
sEncrypt := ''; // 암호화된 이진 문자열
if S = '' then begin
Encrypt := '';
System.Exit;
end;
for i := 1 to Length(S) do begin
sEncrypt := sEncrypt + char(byte(S[i]) xor (Key shr 8));
Key := (byte(sEncrypt[i]) + Key) * C1 + C2;
end;
rEncrypt := ''; // 암호화된 이진 문자열을 ASCII 숫자로 변경
for i := 1 to Length(sEncrypt) do begin
rChar := sEncrypt[i];
rEncrypt := rEncrypt + format('%.3d', [Ord(rChar)]); // 한문자당 3자리씩
end;
Result := rEncrypt;
end;
세개의 상수를 사용하는데 이것은 전역으로 선언해 주어야 합니다.
const
C1 = 52845; // 기준키1
C2 = 28317; // 기준키2
MY_KEY = 12345; // 사용자키는 필히 변경하십시요.
P.S. 요즘들어 같은 질문이 주기적으로 쏟아지는 경우가 종종 있습니다. 가급적 검색을 활용하시고 처음부터 다해달라 식의 질문은 삼가주시길 바랍니다. 뭐 저야 시간도 남고 고수도 아니니 글을 올리는게 쉽지만 고수님들은 그렇지 못하답니다. ^^;
궁금녀 wrote:
> 어제 질문을 올렸었는데 제가 원하는 답변이 되질않아서 이렇게 다시 올립니다.
>
> 스플레쉬 폼 다음에 사용자이름, 암호를 입력해서 로그인하는 폼을 만들려고 하는데요
>
> 암호랑 사용자이름 그냥 저장하면 볼 수도 있잖아요..그래서 암호화/복호화 한다는데
>
> 구체적으로 어떻게해야 하는지...?? 그리고 사용자가 암호를 변경할 수도 있잖아요..
>
> 이런 전반적인 방법을 구체적으로 알고싶은데요...
>
> 첨에 사용자가 이름이랑 암호를 어떻게 넣게해야하는지..??
>
> 도저히 감이 오질않아서....좀 자세하게 부탁드립니다..
>
> 즐거운 주말되시구요...그럼 20000