【问题标题】:How to generate a password the same as what django generates?如何生成与 django 生成的密码相同的密码?
【发布时间】:2012-08-14 13:17:06
【问题描述】:
我正在使用 django.contrib.auth.hashers.make_password 方法来存储密码。有一个 iOS 应用程序将用户名和密码发送到我的 django 站点以进行身份验证。我希望他们发送加密密码而不是原始密码。但是不知道django是怎么加密密码的?其他平台的其他人如何生成相同的加密密码?
【问题讨论】:
标签:
objective-c
django-authentication
【解决方案1】:
版本 =1.4 是 PBKDF2,查表
select * from auth_user;
确保密码列是 algorithm$hash
详情请查看document。
【解决方案2】:
Django 有多种方法可以用来加密密码。默认情况下使用 PBKDF2。
您可以查看您的 PASSWORD_HASHERS 列表以了解设置的内容:
PASSWORD_HASHERS = (
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
'django.contrib.auth.hashers.BCryptPasswordHasher',
'django.contrib.auth.hashers.SHA1PasswordHasher',
'django.contrib.auth.hashers.MD5PasswordHasher',
'django.contrib.auth.hashers.CryptPasswordHasher',
)
这是一篇关于在 iOS 中实现该算法的 SO 文章:
PBKDF2 using CommonCrypto on iOS
挑战将是密码被加盐。如果您不知道盐,则无法正确散列密码。因此,您需要将盐安全地发送到设备,以便您的输出哈希匹配。