gpt4 book ai didi

mysql - 以md5格式保存md5密码django?

转载 作者:行者123 更新时间:2023-11-29 18:42:27 24 4
gpt4 key购买 nike

我正在迁移我的数据库,并且我有一个用户表,其中的密码存储在 md5 中?所以我只想将我的密码存储在 md5 中,如果用户输入密码,它会接受它。所以有什么方法可以保存我的密码吗?密码为md5。 例如,我的用户有一个密码:-'e10adc3949ba59abbe56e057f20f883e'

password =request.POST.get('password').strip()
confirmPassword =request.POST.get('confirmPassword').strip()
if password != confirmPassword:
messages.error(request,'password and confim password must be same')
return render(request, 'templates/sign-up.html')
if User.objects.filter(email=email).exists():
messages.error(request, 'This email already exists')
return render(request, 'templates/sign-up.html')
new_password = make_password(password)
staff = False
superUser = False
status = True
authUser = User( password=new_password,
username=email, email=email,is_active=status, is_staff=staff, is_superuser=superUser)
authUser.save()

我想将其保存在我的 auth_user 表中,我该怎么做。

最佳答案

Django 内置了 MD5 密码哈希器,只需将其添加到 PASSWORD_HASHERS 设置的底部即可:

PASSWORD_HASHERS = [
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
'django.contrib.auth.hashers.Argon2PasswordHasher',
'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
'django.contrib.auth.hashers.BCryptPasswordHasher',
'django.contrib.auth.hashers.UnsaltedMD5PasswordHasher',
]

这样 Django 将使用未加盐的 MD5 检查密码,但是当用户成功登录时,密码会自动更新以使用更强的哈希值。

但是,出于安全考虑,强烈建议您编写 wrapped hasher这将使用更强的密码散列算法对 md5 散列进行散列。通过包装 md5 哈希值,您可以简单地导入旧哈希值并以安全的方式保存它们,而无需用户登录即可生效。

关于mysql - 以md5格式保存md5密码django?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44864496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com