Delphi 检索firebird用户密码

Delphi 检索firebird用户密码,delphi,firebird,Delphi,Firebird,我的应用程序当前正在使用firebird安全性为我的应用程序的任何用户登录 我们正在使用Delphi7和Firebird 2.1 现在我们需要改变这一点,我们需要自己控制取消访问 我们正在考虑将从数据库中检索所有用户的密码作为一个转换例程,并将密码保存在表中 有可能做到这一点吗 我试图使用delphi组件TIBSecurityService,但没有成功 看一看: var i: integer; l: TStrings; pwd: string; begin IBSecurityS

我的应用程序当前正在使用firebird安全性为我的应用程序的任何用户登录

我们正在使用Delphi7和Firebird 2.1

现在我们需要改变这一点,我们需要自己控制取消访问

我们正在考虑将从数据库中检索所有用户的密码作为一个转换例程,并将密码保存在表中

有可能做到这一点吗

我试图使用delphi组件TIBSecurityService,但没有成功

看一看:

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派生的散列。