0

我正在使用 django.contrib.auth.hashers.make_password 方法来存储密码。有一个 iOS 应用程序将用户名和密码发送到我的 django 站点以进行身份​​验证。我希望他们发送加密密码而不是原始密码。但是不知道django是怎么加密密码的?其他平台的其他人如何生成相同的加密密码?

4

2 回答 2

1

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

挑战将是密码被加盐。如果您不知道盐,则无法正确散列密码。因此,您需要将盐安全地发送到设备,以便您的输出哈希匹配。

于 2012-08-18T07:59:06.553 回答
0

版本 <1.4 是 SHA1,>=1.4 是 PBKDF2,查看表格

select * from auth_user;

确保密码列是 algorithm$hash 检查文档以获取详细信息。

于 2012-08-18T08:06:49.720 回答