Odoo中文网|Odoo实施培训

标题: 忘记了Odoo的Admin账户密码怎么办? [打印本页]

作者: 店小2    时间: 2016-9-22 21:55
标题: 忘记了Odoo的Admin账户密码怎么办?
7.0及以前,用户密码在数据库里是明文保存的。(用户密码加密是通过加载第三方模块来实现的)
对于管理员把自己锁在门外这样的糗事,7.0及以前的版本是极易处理的,只要可以访问数据库,查询res_users表,执行下面的命令就可以知道密码,不仅是管理员,所有人的密码噢
select login,password from res_users;

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;
这样你就能用新密码登录了.





欢迎光临 Odoo中文网|Odoo实施培训 (http://www.chinaodoo.net/) Powered by Discuz! X3.2