ACCESS 的密码在DELPHI中能解不??

saoren 2000-09-28 09:45:00
小弟在编程中连入的一个数据库是下一个数据库的数据源,但是由于安全问题,数据库设了密码。在DELPHI中一般是要输入密码才能打开它,但是又不想让其它用户知道这密码,所以能不能通过DELPHI解开密码,连入数据库。各位大虾帮帮忙,多谢了。
...全文
251 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
saoren 2000-10-06
  • 打赏
  • 举报
回复
musicfox:
真对不起,怪我没说清楚,因为用户的密码可能是随时改的,所以在程序连入数据库的密码
不是说是不变的。所以说要进行对*.mdb格式的文件进行解密。
数据库是放在用户的机器上,连入A.mdb,取得数据后作为B.mdb数据库的路径和其它资料的
参数。
现已经在网上寻得解方,不过还是多谢各位。现把它显之:这是对于Office 97数据库的。、
function GetAccessPassword(FilePath:string):string;
const
xorString:array[0..12]of byte=
( $86, $FB, $EC, $37,
$5D, $44, $9C, $FA,
$C6, $5E, $28, $E6,$13 );
var
passBuf:array[0..14]of byte;
pass:array[0..14]of char;
resultPass:string;
B:Byte;
F:TFileStream;
i:integer;
begin
F:=TFileStream.Create(FilePath,fmShareDenyNone);
//office 97
try
F.Seek($42,soFromBeginning);
F.Read(passBuf,14);
for I:=0 to 13 do
begin
B := passBuf[i] xor xorString[i];
pass[i]:=char(B);
end;
pass[sizeof(pass) - 1] := #0;
resultPass:=StrPas(Pass);
finally
F.Free;
end;
result:=resultPass;
end;
end;
musicfox 2000-10-02
  • 打赏
  • 举报
回复
可用TDatabase,同enlightenment的说法,也可以用TSession,在TSession的OnPassword事件
中写上user和password即可。
enlightenment 2000-09-30
  • 打赏
  • 举报
回复
哈哈!又重发了一堆,这网我已经没辄了。
enlightenment 2000-09-30
  • 打赏
  • 举报
回复
添加一个TDatabase组件,再将Table或Query等连接至TDatabase组件;

***在属性框的DatabaseName填上别名,如“My_Database”

然后:
try
Database1.Connected:=False;
Database1.AliasName:='***';
Database1.LoginPrompt:=False;
Database1.Params.Add('UserName=***');
Database1.Params.Add('Password=***');
Database1.Connected:=True;
except
ShowMessage('***');
end;
potato 2000-09-30
  • 打赏
  • 举报
回复
使用ADO 或 Data access 控件时都有设置password 的选项。

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧