資源描述:
《防止access 2000密碼被破譯的方法--》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、防止Access2000密碼被破譯的方法>> 如果你過分信任Access2000數(shù)據(jù)庫的密碼保護(hù),你可能會(huì)因此而蒙受損失。這是因?yàn)锳ccess2000的數(shù)據(jù)庫級(jí)密碼并不安全,相反它很脆弱,甚至下面這段非常小的程序就可以攻破它: ?。牎 〕绦蛞唬╒B6):Access2000密碼破譯PrivateSubmand1_Click()ConstOffset=H43文件偏移Access數(shù)據(jù)庫從此處開始存放加密密碼DimbEmpty(1To2)AsByte,bPass(1To2)AsByteDimiAsInteger,Passpty_DB.md
2、bForBinaryAs#1打開被密碼保護(hù)的數(shù)據(jù)庫OpenD:VB6_TestMDB_PassdbForBinaryAs#2Seek#1,OffsetSeek#2,OffsetFori=1To20'Access2000數(shù)據(jù)庫密碼最長允許20位Get#1,,bEmpty'其中每位密碼占兩個(gè)字節(jié)Get#2,,bPass'一個(gè)漢字也僅是一位密碼,占兩個(gè)字節(jié)If(bEmpty(1)XorbPass(1))<>0ThenPasspty(1)XorbPass(1))'將密碼解密EndIfNextClos
3、e1,2MsgBoxPasspty_DB.mdb)。該數(shù)據(jù)庫的創(chuàng)建日期必須與被密碼保護(hù)的數(shù)據(jù)庫(Pass_Protected_DB.mdb)相一致。換句話說,Access2000僅僅是使用數(shù)據(jù)庫創(chuàng)建日期來加密用戶密碼?! ?yīng)注意的是:上面的創(chuàng)建日期只是操作系統(tǒng)級(jí)的,也就是TIMEp;H40000000PrivateConstOPEN_EXISTING=3PrivateConstFILE_SHARE_READ=H1PrivateConstFILE_SHARE_E,_ByValNullPAsLong,ByValNullP2AsLong)A
4、sLongPrivateDeclareFunctionSystemTimeToFileTimeLibkernel32_(lpSystemTimeAsSYSTEMTIME,lpFileTimeAsFILETIME)AsLongPrivateDeclareFunctionCreateFileLibkernel32Alias&quo12下一頁>>>>這篇文章來自..,。t;CreateFileA_(ByVallpFileNameAsString,ByValdplateFileAsLong)AsLongPrivateDeclareFuncti
5、onCloseHandleLibkernel32(ByValhObjectAsLong)_AsLongPrivateDeclareFunctionLocalFileTimeToFileTimeLibkernel32_(lpLocalFileTimeAsFILETIME,lpFileTimeAsFILETIME)AsLongPrivateSubmand1_Click()DimYearAsInteger,MonthAsInteger,DayAsIntegerDimHourAsInteger,MinuteAsInteger,SecondAs
6、IntegerDimTimeStampAsVariant,FilenameAsString,XAsIntegerYear=2001:Month=3:Day=13'準(zhǔn)備設(shè)定的創(chuàng)建日期Hour=12:Minute=0:Second=26TimeStamp=DateSerial(Year,Month,Day)+TimeSerial(Hour,Minute,Second)Filename=D:VB6_TestMDB_Passdb'目標(biāo)文件名X=ModifyFileStamp(Filename,TimeStamp)EndSubF
7、unctionModifyFileStamp(FilenameAsString,TimeStampAsVariant)AsIntegerDimXAsLong,HandleAsLong,System_TimeAsSYSTEMTIMEDimFile_TimeAsFILETIME,Local_TimeAsFILETIMESystem_Time.eStamp):System_Time.eStamp)System_Time.eStamp)System_Time.eStamp)-1System_Time.eStamp):System_Time.e
8、Stamp)System_Time.TimeToFileTime(System_Time,Local_Time)X=LocalFileTimeToFileTime(Local_Time,File_Time)'轉(zhuǎn)換