我得到一个旧的php应用程序的用户表,其中用户具有unsalted md5散列作为密码,因为即时将应用程序迁移到django,即时尝试将所有用户放在auth_user
表中。python django unsalted md5密码哈希格式
参考this后,可以将密码存储为md5散列而不含盐。但那不适合我? (python/2.7.6,django/1.6.1)
例如,对于密码为“changeme”的用户,我认为它应该是格式md5 $$ 4cb9c8a8048fd02294477fcb1a41191a或者我错过了什么?
编辑:在settings.py Ive得到:在views.py使用login_required装饰
PASSWORD_HASHERS = (
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
'django.contrib.auth.hashers.BCryptPasswordHasher',
'django.contrib.auth.hashers.SHA1PasswordHasher',
'django.contrib.auth.hashers.MD5PasswordHasher',
'django.contrib.auth.hashers.CryptPasswordHasher',
)
IM如果某种联系:
@login_required
def index(request):
logger.debug('index accessed from %s by %s' % (request.META.get('REMOTE_ADDR'), request.user.username))
member = members.objects.get(nickname=request.user.username)
context = {'request': request, 'member': member}
return render(request, 'voip/index.html', context)
及以下urls.py:
url(r'^login/$', 'django.contrib.auth.views.login', {
'template_name': 'voip/login.html'
}),
url(r'^logout/$', 'django.contrib.auth.views.logout_then_login', {
#'template_name': 'voip/logout.html'
}),
只要在settings.py中有效,AUTHENTICATION_B ACKENDS看起来像这样:
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'django_auth_ldap.backend.LDAPBackend',
)
只要我注释掉django_auth_ldap它不工作。但如果我然后将pbkdf2哈希从初始安装的超级用户(用于调试的pive set pw changeme)复制到auth_user表中的我自己的用户,我可以使用密码“changeme”登录...
非常感谢你,解决了我的问题,登录作品! :)太棒了! – vchrizz 2014-09-16 17:05:13
@ChristophLoesch不客气! – 2014-09-16 17:13:11