亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Access > 正文

安全的ACCESS加密方法

2020-03-24 17:36:58
字體:
來源:轉載
供稿:網友
徐長友
Microsoft的ACCESS數據庫,是我們常用的桌面數據之一,大多中小企業的數據庫管理系統都可以采用它,但其安全性一直令人擔猶,試想,一套財務管理系統,用戶直接打開數據庫去更改數據,后果會如何?有些系統對ACCESS數據庫可能只是更改擴展名,或加個密碼,眾所周知,破解ACCESS密碼的方法和工具網上多的是!所以這樣的加密一樣令人擔猶,下面介紹一個簡單的方法,實現ACCESS數據的加密,供大家參考。 用UltraEdit打開MDB文件可以看到,文件前16個字節的內容:
00 01 00 00 53 74 61 6E 64 61 72 64 20 4A 65 74
現在隨便更改幾個,再用ACCESS打開,發現出現不同識別的html' target='_blank'>文件格式錯誤,因為ACCESS前面保存的信息都是一些MDB文件的定義和口令,如果更改這些內容,別人就很難看出這個數據庫的格式,無法打開它了,而且這樣不會對數據庫的內容作更改,不會破壞原有的數據。下面就用Delphi作個簡單的加密解程序:

用到的加密解函數如下:const
titlestr:array[0..15] of byte=
({GetProperty(Content)},{GetProperty(Content)},{GetProperty(Content)},{GetProperty(Content)},$53,$74,$61,$6E,$64,$61,$72,$64,$20,$4A,$65,$74) ;//對應MDB文件的前16個字節
titlestr2:array[0..15] of byte=
($48,$4A,{GetProperty(Content)},$58,$55,$43,$48,$41,$4E,$47,$59,$4F,$55,{GetProperty(Content)},$20,$20) ;//更改后的MDB文件的前16個字節,自己隨便寫吧,比如寫上自己公司的簡稱或自已的名
produce EncrypMDB(filename:string); //用titlestr2內容替換MDB前16個字節,以便實現加密的作用
var F:TFileStream;
begin
if not fileExists(filename) then exit;
F:=TFileStream.create(filename,fmopenwrite);
try
F.seek({GetProperty(Content)},soFromBeginning);
F.Write(titlestr2,16);
finally
F.free;
end;
end;
produce uncrypMDB(filename:string); //還原MDB前16個字節
var F:TFileStream;
begin
if not fileExists(filename) then exit;
F:=TFileStream.create(filename,fmopenwrite);
try
F.seek({GetProperty(Content)},soFromBeginning);
F.Write(titlestr,16);
finally
F.free;
end;
end;我們知道打開ACCESS數據庫后會出現一個鎖定文件(.ldb文件),因為我們自己也要使用數據庫,所以必須在使用時還原數據庫。
如果還原后沒有進行加密的話,用戶同樣可以復制MDB文件,然后用ACCESS或其它工具打開它,所以應該在數據打開前后都處于加密狀態才能保證數據的安全。
用Delphi采用ADO連接數據庫用以下方法可以實現://還原數據,以便自已使用數據庫
copyfile(pchar(APP_path+'/data/account.db'),pchar(app_path+'data/temp.db'),false); //app_path表示程序的當前目錄,account.db是個更改了擴展名的MDB文件
uncrypMDB(App_path+'data/temp.db');
copyfile(pchar(App_path+'data/temp.db'),pchar(APP_path+'/data/account.db'),false);
adoconn.connectionstring:='provider=Microsoft.Jet.OLEDB.4.0;Data Source='+App_path+'data/account.db;Persist Security Info=false'; //adocon是個TADOConnection組件
try
adoconn.connected:=true;
except
MessageBox(handle,'打開數據庫出現致命的錯誤?。。?,'錯誤',MB_OK+MB_ICONERROR);
end;
//打開后馬上對其加密
copyfile(pchar(APP_path+'/data/account.db'),pchar(app_path+'data/temp.db'),false); //app_path表示程序的當前目錄,account.db是個更改了擴展名的MDB文件
EncrypMDB(App_path+'data/temp.db');
copyfile(pchar(App_path+'data/temp.db'),pchar(APP_path+'/data/account.db'),false);
deletefile(App_path+'data/temp.db');
上面使用了兩次臨時文件,是因為數據庫打開后再對MDB進行直接的寫入會出現問題,而且你無法去確定多少個用戶打開了程序。
整個程序共用一個TADOConnection,只在打開數據庫連接的時候還原MDB文件,其它時間MDB文件一直都處于加密狀態!用戶復制了MDB文件一般很難知道它是什么!打開數據庫后會有一個.ldb文件,類型會出現ACCESS等字樣,如果你不想讓人看出是什么的話就修改注冊表吧,如:
reg:=TRegistry.Create;
try
reg.RootKey:=HKEY_CLASSES_ROOT;
reg.OpenKey('.ldb');
reg.WriteString(','tempfile');
finally
reg.closekey;
reg.free;
end;
這樣用戶看到的文件類型是tempfile注:以上所用數據庫都是指ACCESS 2000,其它版本的我想應該大同小異,自己動手試試吧。大家如有什么更好的方法或建議,歡迎來信交流:yousoft@chinaren.com 本文作者:html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人欧美一区二区三区在线湿哒哒| 国产精品露脸av在线| 日韩电影在线观看免费| 国内精品免费午夜毛片| 国产一区二区久久精品| 国产精品福利小视频| 高清欧美一区二区三区| 最近2019中文字幕第三页视频| 日韩av第一页| 久久久91精品国产一区不卡| 欧美精品激情视频| 精品爽片免费看久久| 日韩av综合网| 国产精品流白浆视频| 欧美色道久久88综合亚洲精品| 国产精品无码专区在线观看| 欧美大胆在线视频| xxav国产精品美女主播| 亚州欧美日韩中文视频| 一区二区三区黄色| 亚洲精品v欧美精品v日韩精品| 久久视频在线播放| 91高清视频免费| 国产精品高潮呻吟久久av无限| 亚洲天堂男人天堂女人天堂| 亚洲精品国产精品国自产观看浪潮| 久久久久久九九九| 欧美日韩在线观看视频小说| 国产精品视频网站| 久久综合五月天| 国产精品一区二区av影院萌芽| 国产精品久久久久999| 免费99精品国产自在在线| 亚洲精品午夜精品| 国产精品欧美亚洲777777| 亚洲人成自拍网站| 亚洲欧洲激情在线| 日韩久久免费电影| 亚洲美腿欧美激情另类| 亚洲男人天堂久| 亚洲国产91精品在线观看| 欧美午夜宅男影院在线观看| 欧美一级在线播放| 国产视频亚洲视频| 在线播放日韩欧美| 亚洲日本成人女熟在线观看| 国产视频精品va久久久久久| 久久久视频免费观看| 国产精品久久久久久网站| 欧美综合激情网| 亚洲午夜av电影| 夜夜嗨av色综合久久久综合网| 日韩欧美成人网| 国产一区二区三区四区福利| 国产精品久久久久77777| 久久网福利资源网站| 中文字幕在线观看亚洲| 国产精品视频在线播放| 欧美日韩成人在线观看| 精品美女永久免费视频| 日韩免费不卡av| 欧美成人午夜激情在线| 亚洲精品中文字幕有码专区| 亚洲精品国产精品乱码不99按摩| 色先锋资源久久综合5566| 日本三级韩国三级久久| 91成人在线视频| 亚洲电影第1页| 国产精品一区久久| 在线免费看av不卡| 国产成人精品免费久久久久| 日韩最新免费不卡| 一本色道久久综合狠狠躁篇怎么玩| 欧美一级片在线播放| 亚洲精品一区二区三区婷婷月| 91国内精品久久| 亚洲成人性视频| 欧美大片免费观看| 欧美精品一区在线播放| 尤物九九久久国产精品的特点| 97视频在线观看视频免费视频| 欧美日韩视频免费播放| 国产精品久久一| 欧美激情奇米色| 国产日韩中文字幕在线| 久久夜色撩人精品| 亚洲成人激情在线| 午夜精品在线视频| 久久久成人av| 国产精品美女久久久免费| 国产欧美一区二区三区久久人妖| 久久精品国产电影| 97在线观看视频| 久久久久久久久久亚洲| 国产精品久久国产精品99gif| 欧美另类老肥妇| 国产精品成人一区二区三区吃奶| 欧美成人午夜免费视在线看片| 国产日产欧美a一级在线| 日韩电视剧在线观看免费网站| 亚洲黄页视频免费观看| 亚洲品质视频自拍网| 国产日韩欧美在线视频观看| 欧美国产中文字幕| 国产成人+综合亚洲+天堂| 亚洲a在线观看| 亚洲字幕一区二区| 国产精品久久久久久久久借妻| 日韩av免费在线播放| 色综合天天狠天天透天天伊人| 国产免费一区二区三区香蕉精| 蜜臀久久99精品久久久久久宅男| 亚洲一区制服诱惑| 亚洲经典中文字幕| 日韩美女毛茸茸| 九九九热精品免费视频观看网站| 欧美视频在线观看 亚洲欧| 日韩中文在线观看| 国产一区二区色| 在线性视频日韩欧美| 美女999久久久精品视频| 中文字幕欧美日韩精品| 久热爱精品视频线路一| 国产欧美欧洲在线观看| 69久久夜色精品国产7777| 亚洲国产成人在线播放| 久久久久久91香蕉国产| 懂色av一区二区三区| 欧美性生交大片免费| 中文字幕v亚洲ⅴv天堂| 深夜福利国产精品| 国产精品免费网站| 欧美黑人性视频| 欧美精品电影在线| 91系列在线观看| 全亚洲最色的网站在线观看| 第一福利永久视频精品| 日韩精品一二三四区| 在线日韩第一页| 国产精品va在线播放我和闺蜜| 国产综合色香蕉精品| 久久久免费高清电视剧观看| 国产在线观看精品| 亚洲欧美国产日韩中文字幕| 日韩免费av在线| 国产精品都在这里| 亚洲第一男人天堂| 色诱女教师一区二区三区| 日韩av在线网页| 欧美性猛交xxxx久久久| 欧美日韩国产综合新一区| 精品女同一区二区三区在线播放| 久久精品成人动漫| 欧美日韩国产色视频| 久久久中文字幕| 亚洲福利影片在线| 欧美富婆性猛交| 国产一区二区三区高清在线观看| 97涩涩爰在线观看亚洲| 久久露脸国产精品| 久久躁日日躁aaaaxxxx| 日本免费一区二区三区视频观看| 日韩电影免费在线观看中文字幕| 欧美国产第一页|