線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1391
推到 Plurk!
推到 Facebook!

請問如何對SQL欄位作加密的動作

尚未結案
andy1119
一般會員


發表:32
回覆:35
積分:13
註冊:2003-11-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-29 15:58:43 IP:210.69.xxx.xxx 未訂閱
想請問各位大大 若有一欄位是記錄使用者的密碼 那請問要如何作到加密的功能呢? 因為我有看過有人作過的系統 密碼欄位會出現亂碼 請問要如何作?
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-29 18:10:19 IP:211.20.xxx.xxx 未訂閱
引言: 想請問各位大大 若有一欄位是記錄使用者的密碼 那請問要如何作到加密的功能呢? 因為我有看過有人作過的系統 密碼欄位會出現亂碼 請問要如何作?
andy1119 你好 把相對的dbEdit.PasswordChar設為任一字元(一般設為'*'),之後在其內輸入的資料即會顥示'****..'了 如果還有dbGrid的資料顯示,則請把密碼欄位的Visiable設為False; DataSet.FieldByName('Password').Visiable := False; 這樣才不會在dbGrid中顯示出來。
ticky
初階會員


發表:35
回覆:69
積分:25
註冊:2002-11-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-30 02:14:34 IP:220.134.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=28295 AES加密演算法 你看看是不是你要的結果^_^ 您就像個小孩子,世界上最遙遠的愛情就是我在你面前你卻不知道我愛你(小懷子)http://www.mm520.net
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-30 08:24:16 IP:61.221.xxx.xxx 未訂閱
您好: 加密  
 function Encrypt(S: String): String;
var
  i,j,k1,k2: integer;
  cSum,nSum: integer;
  sTmp: String[8];
begin
  Result := Space(8) '??';      //檢查密碼是否合法.
  S := TrimRight(S);
  if Length(S) < 5 then
     begin ShowMsg('密碼長度最少必須5位'); Exit; end;
  if Length(S) > 8 then
     begin ShowMsg('密碼長度超過8位');     Exit; end;
  cSum := 0;
  nSum := 0;
  for i := 1 to Length(S) do begin
    if not (S[i] in ['A'..'Z','a'..'z','0'..'9']) then
       begin ShowMsg('密碼含有不合法字元'); Exit; end;
    if S[i] in ['A'..'Z','a'..'z'] then Inc(cSum);
    if S[i] in ['0'..'9'] then Inc(nSum);
  end;
  if cSum < 3 then
     begin ShowMsg('密碼最少必須含3位字母'); Exit; end;
  if nSum < 2 then
     begin ShowMsg('密碼最少必須含2位數字'); Exit; end;      //加密.
  Randomize;
  while True do begin
    k1 := Random(30);
    k2 := Random(30);
    sTmp := PadR(S,8);
    Result := '';
    for i := 1 to 8 do begin
      j := k1 Mod 30   i;
      j := (k2 j) Mod 30   1;
      Result := Result   Chr(Ord(sTmp[i]) xor j)
    end;
    if (Pos('"',Result)>0) or (Pos('''',Result)>0) then
    Else Break;
  end;
  Result := Result   Chr(k1 40)   Chr(k2 60);
end;
function Decrypt(S: String): String;
var
  i,j: integer;
  Key1,Key2: integer;
begin
  Result := '??' Space(6);      //檢查密碼是否正確.
  if Length(S) <> 10 then Exit;      //解密
  Key1 := Ord(S[9])-40;
  Key2 := Ord(S[10])-60;
  Result := '';
  for i := 1 to 8 do begin
    j := Key1 Mod 30   i;
    j := (Key2 j) Mod 30   1;
    Result := Result   Chr(Ord(S[i]) xor j)
  end;
  Result := Trim(Result);
end;
~~應無所住而生其心~~
andy1119
一般會員


發表:32
回覆:35
積分:13
註冊:2003-11-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-30 08:50:18 IP:210.69.xxx.xxx 未訂閱
感謝各位大大的回應 小弟的問題已獲解決 真的非常感謝 ^_^
系統時間:2024-05-18 23:09:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!