听起来这个“CMDBuild”工具使用自己的用户表,而不是内置的PostgreSQL用户和角色。
在你做任何其他事情之前, 对数据库进行完整备份 。
如果要恢复现有密码,您需要查明它是否已用盐水加密或散列或以明文形式存储。如果它以明文形式存储,请愤怒地谴责CMDBuild开发人员,直到他们承诺在下一个版本中修复它。
如果它是明文,那么:
select "Username", "Password" from "User" where "Username" = 'admin';
如果使用生成的密码登录不起作用,则可能是哈希值,在这种情况下,您需要确定使用的算法。按照上面的示例语句,它可能只是unix crypt。您可以将提取的密码放入文本文件中,并在其上运行Jack the Ripper或类似的破解工具。
如果你没有成功破解它,那么,如果你已经确定它是如何散列的,你可以散列一个新密码并存储如下:
UPDATE "User" SET "Password" = "sdgfsdf" WHERE "Username" = 'admin';
用您生成的哈希替换上面的占位符文本。
(John the Ripper似乎不理解示例密码,这意味着它要么是unhashed,要么不是像unix crypt那样的公认格式)。