急!急!如何對文本數據加密?? (請詳序,小弟對這方面一點都不懂) (5分)

  • 主题发起人 主题发起人 sydan
  • 开始时间 开始时间
S

sydan

Unregistered / Unconfirmed
GUEST, unregistred user!
我現在正在做一個密碼程式,用戶的資料保存在數據庫DB中,現在需要對用戶輸入的密碼在
存入數據庫時加以改碼(不是一定要改碼,只要達到最終目的讓其它人打開數據庫后無法看
到真實密碼就ok),以達到在打開數據庫時無法看到真實密碼!
如果以上做到后,那麼用戶在登入時我又應該如何確認用戶的資料呢?
(如果對數據庫加密,但每次打開數据庫時都要求用戶輸入那個密碼很煩人呢啊!)
仁兄,你在做密碼程式時是如何做的呢?
有沒有對文本改碼而非對數據表加密的方法呢?我用的是Paradox數據庫,且正在打算用Access
如果用Database控件,能制做一個很簡單很簡單的例子寄給小弟嗎?在此先謝了
E-Mail:Sydan@963.net
 
1.對數據庫加密
2.TDateBase 中设用户名和密碼,并设login prompt为false
每次打開數据庫時不会要求用戶輸入那個密碼。
 
你用的什么数据库
 
用几个函数不就可以了吗?

//--------字元加密----------------------------
function EncryStr(S: String;n:Integer): String;
var
i,j,k1,k2: integer;
sTmp: String;
begin
//加密.
Randomize;
while True do begin
k1 := Random(30);
k2 := Random(30);
sTmp := PadR(S,n);
Result := '';
for i := 1 to n do begin
j := k1 Mod 30 + i;
j := (k2+j) Mod 30 + 1;
Result := Result + Chr(Ord(sTmp) 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 DecryStr(S: String;n:Integer): String;
var
i,j: integer;
Key1,Key2: integer;
begin
//檢查密碼是否正確.
if Length(S) <> n+2 then Exit;

//解密
Key1 := Ord(S[n+1])-40;
Key2 := Ord(S[n+2])-60;
Result := '';
for i := 1 to n do begin
j := Key1 Mod 30 + i;
j := (Key2+j) Mod 30 + 1;
Result := Result + Chr(Ord(S) xor j)
end;
Result := Trim(Result);
end;
 
很简单啊,最简单的事随便做一个函数,将密码处理一下,例如:
function ProcessPassword(Pwd: String): Double;
begin
Result := 0;
for I := 1 to Length(Pwd) do
Result := Result + I * ord(Pwd);
end;
数据库中存入该函数的结果,
下次用户输入密码后,将本函数的运算结果和数据库中比对,
一样就代表正确。
当然,碰巧了可能会重复,看你挑的函数啦。
 
雖然沒有得到我的全部要求也非常感謝幾位的幫助!
 
后退
顶部