显然,新的(v2)OpenCart密码加密方案不是简单的md5哈希。在我为OpenCart安装更改主机但找不到任何内容后,我试图在网上搜索重置管理员密码的方法。
谢谢。
答案 0 :(得分:10)
如果您只是需要重新获得访问权限并更改密码,那么您可以非常轻松地完成访问。在更高版本中打开system/library/user.php
(system/library/cart/user.php
)并找到以
$user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE username =
在WHERE
将#
更改为
$user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user #WHERE username =
并保存。这允许您使用第一个帐户(通常是默认的管理员帐户)登录,而无需任何用户和密码。一旦你这样做,反过来并再次保存。您仍然可以登录,并可以根据需要编辑用户数据编辑密码
答案 1 :(得分:4)
phpMyAdmin
或MySQL
命令提示符编辑MySQL数据库来重置OPENCART ADMIN PASSWORD 重置管理password
的唯一方法是通过oc_user
修改phpMyAdmin
中的密码列,例如搜索丝绸之路或更改password
列通过MySQL
命令提示符。你无法生成新的Salt&如最后所述,使用MySQL
命令提示符进行哈希处理。请遵循以下步骤:
导航至oc_user
表格,查找名称为密码&的列。盐
并更改所需user_id
密码:d1c194daffb03fc2653027c87f76a12a4eaeac5f
salt:x3x6r693j
此字符串或散列值的组合更改/将管理密码更改为所需用户的“ password
”(不带引号)。此方法可能会产生较小的安全风险,因为盐将是公开的数据,在此处发布。
点击“开始”。它会将您的密码更改为密码。现在,使用您现有的用户名和新密码登录OpenCart Admin(www.yourwebsitename.com/admin)仪表板。
用户名:<现有用户名>
密码:密码
通过了解 user_id ,上述所有步骤均可通过一个命令完成:
update `oc_user` set `password` = sha1( concat(`salt`, sha1( concat(`salt`, sha1('password'))))) where user_id = 1
的阐释:强>
密码是用随机盐加密的
sha1($salt . sha1($salt . sha1($password)))
以上方法用于加密文件中的密码 admin / model / user / user.php
SELECT SHA1( CONCAT( salt, SHA1( CONCAT( salt, SHA1( 'password' ) ) ) ) )
FROM oc_user
WHERE user_id =1
LIMIT 0 , 30
<强>结果:强> d1c194daffb03fc2653027c87f76a12a4eaeac5f
Salt:
$salt = substr(md5(uniqid(rand(), true)), 0, 9)
uniqid()
,password_hash
和password_verify
纯粹是PHP函数。它们与MySQL无关
password_hash不使用MD5算法来散列您的密码。 md5和password_hash()产生两种不同的长度
导航至Tool: OpenCart 2.0+ User Password Reset Generator 您可以指定新密码和盐
答案 2 :(得分:1)
密码由OpenCart(来自SELECT * FROM users LEFT JOIN appointments a ON persons.id = a.created_by
)存储为</ p>
admin/model/user/user.php
假设您有数据库访问权限,则可以将盐检索为
sha1($salt . sha1($salt . sha1($data['password'])))
然后生成新的哈希,例如在bash中($ SALT是上一个命令的结果):
SELECT salt FROM your_db.oc_user WHERE username='your_username';
最后,使用这个新哈希更新数据库:
echo -n $SALT$(echo -n $SALT$(echo -n "newpassword" | sha1sum|cut -d' ' -f1 )|sha1sum|cut -d' ' -f1)|sha1sum
然后使用新密码登录。
答案 3 :(得分:0)
You can simply change password through mysql.
UPDATE oc_user SET password = MD5('nanhe') WHERE user_id = 1;
答案 4 :(得分:0)
对于登录 admin 密码在database > oc_user
中设置的0ZReKeFZM75Y
密码 0c7a864c5a737f08f001f3123849ba5e03af3d06
和盐 HYSQS59P9
到管理员用户行。
答案 5 :(得分:0)
您可以使用以下脚本生成新密码:
<?php
$salt = 'pMiPpQ7N4'; //salt, update user.salt with this
$password = 'test123'; //actual password
//update user.password with this
echo sha1($salt . sha1($salt . sha1($password)));
?>
答案 6 :(得分:0)
假设您有权访问php文件,请在文本编辑器中打开文件system / library / cart / user.php,然后从以下位置更改方法login()的第一行第40行:
$user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE username = '" . $this->db->escape($username) . "' AND (password = SHA1(CONCAT(salt, SHA1(CONCAT(salt, SHA1('" . $this->db->escape($password) . "'))))) OR password = '" . $this->db->escape(md5($password)) . "') AND status = '1'");
收件人:
$user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE username = '" . $this->db->escape($username) . "' AND status = '1'");
这将取消密码检查,因此无论您输入密码是什么,您都将始终登录。 登录后,立即改回此行,因为它将允许任何人使用任何用户帐户登录,然后在“用户-用户-编辑”下更改密码。