Django admin添加用户密码加密
时间: 2023-11-25 11:05:56 浏览: 38
Django默认使用密码加密算法来保存用户密码。在Django中,密码加密是通过使用哈希函数来实现的。哈希函数会将原始密码转换为一段固定长度的字符串(哈希值),并且无法将哈希值还原为原始密码。
在Django admin中添加用户时,密码会自动进行加密处理。如果您想手动加密密码,可以使用以下代码:
```python
from django.contrib.auth.hashers import make_password
# 原始密码
password = 'my_password'
# 加密密码
hashed_password = make_password(password)
```
此代码将使用Django默认的哈希算法对密码进行加密,并返回加密后的字符串。您可以将加密后的密码保存到数据库中。
注意,Django默认使用的哈希算法可能会在未来的版本中发生更改,因此建议使用make_password函数来进行密码加密。
相关问题
django 保存自定义用户密码
在 Django 中,可以使用 Django 自带的 `make_password` 函数来对用户密码进行加密,也可以使用自定义的加密方式。
使用 Django 自带的加密方式:
```python
from django.contrib.auth.hashers import make_password
password = 'my_password'
hashed_password = make_password(password)
```
使用自定义的加密方式:
```python
import hashlib
password = 'my_password'
hashed_password = hashlib.sha256(password.encode('utf-8')).hexdigest()
```
将加密后的密码保存到用户模型中:
```python
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
class MyUserManager(BaseUserManager):
def create_user(self, email, password=None):
if not email:
raise ValueError('Users must have an email address')
user = self.model(email=self.normalize_email(email))
user.password = make_password(password)
user.save(using=self._db)
return user
def create_superuser(self, email, password):
user = self.create_user(email=email, password=password)
user.is_admin = True
user.save(using=self._db)
return user
class MyUser(AbstractBaseUser):
email = models.EmailField(unique=True)
password = models.CharField(max_length=128)
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
objects = MyUserManager()
USERNAME_FIELD = 'email'
def has_perm(self, perm, obj=None):
return True
def has_module_perms(self, app_label):
return True
@property
def is_staff(self):
return self.is_admin
```
在上面的示例中,我们使用 `make_password` 函数将密码加密后保存到了用户模型中的 `password` 字段中。如果你使用的是自定义的加密方式,需要将加密后的密码保存到 `password` 字段中。
django创建的admin帐号密码忘记怎么查看
在 Django 中,密码是加密存储的,因此无法直接查看密码。但是,您可以使用以下方法重置管理员密码:
1. 在终端中进入您的 Django 项目目录,执行以下命令:
```
python manage.py createsuperuser --username=admin
```
这将提示您输入新密码。
2. 如果您已经有一个超级用户帐户(不一定是 admin 用户),您可以通过以下步骤更改其密码:
1. 进入 Django 管理后台(例如,`http://localhost:8000/admin/`)。
2. 输入您的超级用户帐户和密码,登录后台。
3. 点击“更改密码”链接,输入新密码并保存更改。
如果您在没有超级用户帐户的情况下忘记了管理员密码,您可以使用 Django 的 shell 来创建一个新的超级用户,具体步骤如下:
1. 打开终端,进入 Django 项目目录。
2. 运行以下命令,进入 Django shell:
```
python manage.py shell
```
3. 在 shell 中输入以下代码,创建一个新的超级用户:
```
from django.contrib.auth.models import User
User.objects.create_superuser('admin', '<your-email>', '<your-password>')
```
注意将 `<your-email>` 和 `<your-password>` 替换为您想要的电子邮件地址和密码。
4. 退出 shell,重新启动 Django 服务器。
现在,您可以使用新创建的超级用户帐户登录 Django 管理后台,并管理您的应用程序。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)