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

請問如何讓access裡的資料內容加密呢?

尚未結案
paa
初階會員


發表:50
回覆:101
積分:30
註冊:2005-02-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-11 20:20:54 IP:210.60.xxx.xxx 未訂閱
function Encrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string; var I : Byte; begin Result := ''; for I := 1 to Length(InString) do begin Result := Result CHAR(Byte(InString[I]) xor (StartKey shr 8)); StartKey := (Byte(Result[I]) StartKey) * MultKey AddKey; end; end; 想使用這個function,讓access裡的資料內容加密,而不是整個資料庫加密,我的access有三個欄位為'id','姓名','住址'想讓這個三欄位裡的內容加密,請問要如何做啊?
paa
初階會員


發表:50
回覆:101
積分:30
註冊:2005-02-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-11 20:24:10 IP:210.60.xxx.xxx 未訂閱
adotable1.ConnectionString:='provider=microsoft.jet.oledb.4.0;data source=c:\a\aa.mdb;persist security info=false'; adotable1.TableName:='tt'; adotable1.Active:=true;使用這個連線,但不知要怎麼讓資料裡的內容加密呢?
mackevin
一般會員


發表:0
回覆:11
積分:2
註冊:2003-06-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-14 03:55:41 IP:218.32.xxx.xxx 未訂閱
在輸入之資料時 進行加密不就行了嗎 Encrypt(Edit1.Text)
BIG-ROM
初階會員


發表:94
回覆:91
積分:37
註冊:2005-04-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-14 04:31:52 IP:219.130.xxx.xxx 未訂閱
使用MD5加密    寫程序——新問題會接踵而來!
paa
初階會員


發表:50
回覆:101
積分:30
註冊:2005-02-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-14 13:28:58 IP:210.60.xxx.xxx 未訂閱
您好:我是想要一開始打開資料庫就對資料庫裡的內容加解密,不是只輸入的edit加密喔~~~
paa
初階會員


發表:50
回覆:101
積分:30
註冊:2005-02-01

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-05-14 13:30:32 IP:210.60.xxx.xxx 未訂閱
您好:請問什麼叫使用MD5加密啊?可否教教我呢?
boson
中階會員


發表:74
回覆:155
積分:85
註冊:2004-07-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-05-14 16:20:08 IP:70.84.xxx.xxx 未訂閱
別理會 MD5, 那是雜湊函數, 不是加密函數, 雜湊之後資料就無法還原了 你應該在每一筆資料儲存之前, 予以加密, 而讀取之後, 先行解密, 再進行其他處理 加密的方法有很多選擇, 從最簡單的(你所提到的這種用 XOR 處理的) 到複雜的 SHA1 等等, 網路上都找得到 越簡單的, 可能處理速度越快, 但破解也越容易 越難的當然就剛好相反
mackevin
一般會員


發表:0
回覆:11
積分:2
註冊:2003-06-22

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-05-15 03:17:10 IP:222.43.xxx.xxx 未訂閱
var I,J:integer;
begin
  ADOQuery1.Edit;
  for I:= 1 to ADOQuery1.Recordset do
   begin
     ADOQuery1.RecNo:=I;
     ADOQuery1.FieldValues['ID']:=Encrypt(ADOQuery1.FieldValues['ID']);
     ADOQuery1.FieldValues['姓名']:=Encrypt(ADOQuery1.FieldValues['姓名']);
     ADOQuery1.FieldValues['住址']:=Encrypt(ADOQuery1.FieldValues['住址']);
     ADOQuery1.Post;
   end;
試試看吧 我想應該是你要的要求 對這三欄位裡的內容加密
paa
初階會員


發表:50
回覆:101
積分:30
註冊:2005-02-01

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-05-15 11:57:46 IP:210.60.xxx.xxx 未訂閱
adoConnection1.ConnectionString:='provider=microsoft.jet.oledb.4.0;data source=c:\a\aa.mdb;persist security info=false'; adoConnection1.LoginPrompt:=false; adoConnection1.Connected:=true; adodataset1.Connection:=adoconnection1; adodataset1.CommandType:=cmdtable; adodataset1.CommandText:='tt'; adodataset1.Active:=true; datasource1.DataSet:=adodataset1; Edit1.Text:=adodataset1.FieldByName('c').AsString; Edit2.Text:=adodataset1.FieldByName('Cus_2').AsString; Edit3.Text:=adodataset1.FieldByName('Cus_3').AsString; 你好,我是用這個方法連線的,而我用了你的程式,顯示有錯, incompatible types:'integer'and '_recordset' not enough actual parameters could not compile used unit'unit1.pas'出現這行的錯,請問是要怎麼變啊,可否教教我謝謝。
wyndog
資深會員


發表:7
回覆:362
積分:348
註冊:2004-10-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-05-17 10:05:56 IP:60.248.xxx.xxx 未訂閱
MD5 跟 SHA1 是屬於雜湊函數 通常是拿來驗證一筆資料是不是有變更過 因為其擁有不可逆的特性,所以以前不曉得為什麼大家很懶 密碼就直接用 MD5 做雜湊,到時候,你輸入密碼的時候 也做雜湊,一比就知道你輸入的對不對 重點是,雜湊函數是很難逆運算的,所以資料庫用 MD5 一搞 是根本沒辦法讀到原始的資料... 另外,就是... 雖然 MD5 很難可逆,很難不同資料產生同樣的雜湊 但畢竟還是有機會一樣,更何況大陸那邊對 MD5/SHA1 都已經有辦法在短時間內產生碰撞了 (據說 MD5 是一天之內可以找到碰撞) 也就是說,只要可以找到雜湊值,一天之內就可以找到可用的密碼 (說可用,是因為跟原本不一樣,但是因為雜湊的關係,所以還是可用) (其實 BIOS 密碼還是用 CheckSum 的.....) 如果還是要用 MD5/SHA1 存密碼的話,再加上 CheckSum 的安全性比較高
系統時間:2024-06-28 1:52:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!