Odoo V8后,系统默认对用户密码通过SHA-512的哈希算法进行了加密,并将加密后的hash值保存在res_users表的password_crypt字段中。虽然我们仍然能通过访问数据库获得这些hash值,但是因为hash算法的不可逆性,我们是无法反推出对应的用户密码的。
老办法不管用了,反推恢复密码不可行。但是,只要我们知道Odoo用的加密算法,我们就可以创建一个新密码并且覆盖旧的加密密码,可以用下面的python代码来创建一个新的加密密码,替换其中的'MY_PASSWORD'为你的用户密码:
from passlib.context import CryptContext
print CryptContext([pbkdf2_sha512']).encrypt('MY_PASSWORD')
然后把上面代码所生成的用户密码的hash值用下面的SQL覆盖数据库中的已有加密密码即可:
UPDATE res_users SET password_crypt='your new password hash' WHERE id=1;
这样你就能用新密码登录了.