我正在使用django.contrib.auth.hashers.make_password方法来存储密码。有一个iOS应用程序发送用户名和密码到我的Django网站进行身份验证。我希望他们发送加密密码而不是原始密码。但我不知道django如何加密密码?其他平台上的其他人如何生成相同的加密密码?
答案 0 :(得分: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
挑战是密码被腌制。如果您不知道salt,则无法正确散列密码。因此,您需要将salt安全地发送到设备,因此您的输出哈希匹配。
答案 1 :(得分:0)