Delphi 检索firebird用户密码
我的应用程序当前正在使用firebird安全性为我的应用程序的任何用户登录 我们正在使用Delphi7和Firebird 2.1 现在我们需要改变这一点,我们需要自己控制取消访问 我们正在考虑将从数据库中检索所有用户的密码作为一个转换例程,并将密码保存在表中 有可能做到这一点吗 我试图使用delphi组件TIBSecurityService,但没有成功 看一看:Delphi 检索firebird用户密码,delphi,firebird,Delphi,Firebird,我的应用程序当前正在使用firebird安全性为我的应用程序的任何用户登录 我们正在使用Delphi7和Firebird 2.1 现在我们需要改变这一点,我们需要自己控制取消访问 我们正在考虑将从数据库中检索所有用户的密码作为一个转换例程,并将密码保存在表中 有可能做到这一点吗 我试图使用delphi组件TIBSecurityService,但没有成功 看一看: var i: integer; l: TStrings; pwd: string; begin IBSecurityS
var
i: integer;
l: TStrings;
pwd: string;
begin
IBSecurityService1.Attach;
IBSecurityService1.DisplayUsers;
l := TStringList.Create;
try
for i := 0 to IBSecurityService1.UserInfoCount-1 do
l.add(IBSecurityService1.UserInfo[i].UserName);
while l.Count > 0 do
try
IBSecurityService1.DisplayUser(l[0]);
pwd := IBSecurityService1.Password;
// pwd = ''
finally
l.Delete(0);
end;
finally
l.Free;
end;
end;
谢谢你的帮助 在任何像样的应用程序中,密码都不会以加密或纯文本形式存储
它们是通过计算密码的散列来存储的。Hasing应该是不可逆的,尽管有几种弱散列算法,但我怀疑在没有严重黑客攻击的情况下恢复是可能的。在任何体面的应用程序中,密码都不是加密或纯文本存储的
它们是通过计算密码的散列来存储的。Hasing应该是不可逆的,尽管有几种弱散列算法,但我怀疑在没有严重攻击的情况下恢复是可能的。Firebird中的密码是散列的,因此您无法恢复它们。Firebird中的密码是散列的,所以您无法恢复它们。据我所知,TIBSecurityService适用于Interbase 6,请参阅上的条目。我不确定该组件是否仍然适用于Firebird 2.1,因为最初的Firebird是该版本的一个分支 说了这句话,你就无法找回原来的密码了。Firebird中的密码使用中所述的单向加密算法进行加密。所以,如果这是你想要的,那么它将不会起作用 您可以尝试升级保存用户信息的security2.FDB数据库。您可以通过在旧的Firebird服务器上备份该数据库,然后在新的Firebird服务器上恢复它来实现这一点。检查要遵循的步骤
HTH据我所知,TIBSecurityService是用于Interbase 6的,请参见上的条目。我不确定该组件是否仍然适用于Firebird 2.1,因为最初的Firebird是该版本的一个分支 说了这句话,你就无法找回原来的密码了。Firebird中的密码使用中所述的单向加密算法进行加密。所以,如果这是你想要的,那么它将不会起作用 您可以尝试升级保存用户信息的security2.FDB数据库。您可以通过在旧的Firebird服务器上备份该数据库,然后在新的Firebird服务器上恢复它来实现这一点。检查要遵循的步骤
HTH我真的希望这不可能!我真的希望这是不可能的!在这里我可以找到散列密码的算法,这样我就可以从security2内部保存加密的密码。fdby您可以保存散列版本的密码,但您将无法反转散列以获取原始密码。密码是使用编码进行散列的,信息丢失,这使得无法逆转。确切的散列算法在Firebird的源代码中,但我相信它是SHA-1,可能与早期版本使用DES派生的散列的原始遗留散列相结合。在这里我可以找到散列密码的算法,因此,我可以从inside security2.fdby中保存加密密码。您可以保存密码的哈希版本,但您将无法反转哈希以获取原始密码。密码是用编码散列的,信息丢失,这使得不可能逆转它。确切的散列算法在Firebird的源代码中,但我相信它是SHA-1,可能与原始的遗留散列相结合,早期版本使用的是从DES派生的散列。