Django Sha2512

2024-09-25 18:27:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把Django和CKAN整合在一起。 现在我有密码兼容性问题。在

CKAN passwod sample: 
"pbkdf2_sha256$20000$ccNI0alYkFxm$JX5g4w9pd0SaRuviKespQBdv21vI0XLVxF4or7KmxYM="
Django password sample:
"$pbkdf2-sha512$19000$ZYxxbi1FCKHUmnOuFWKslQ$d.4ND4lr/.PnfFVWcTnm.Byhi08GS29TNXqaMj/x6E6OKMmZJCqd.o21THbGDVrwsUGpC9U1IemVWijKNtVToA"

它们使用不同的哈希方法。这个想法是切换Django密码哈希。我在Django源代码中找到了sha2-512,但是如何激活它呢?在

django_sha2包不适用于django1.8/python2.7 我还发现了https://gist.github.com/simonwhitaker/4474381这段代码,但在哪里可以实现它呢?在

更新。所以我把它添加到我的代码中,然后像这样导入:

^{pr2}$

现在我有了这个:

# django:
# "pbkdf2_sha512$20000$UjhMbV0VRLZo$BH0h5i+NDm15siMwnydGFOSt24szp1kGqMVppuIMDpsMyquYESh0GHzRA6rUfEnDKi5aKdd5VoxYVB9bG0ymdA=="
# ckan: 
# "$pbkdf2-sha512$19000$ZYxxbi1FCKHUmnOuFWKslQ$d.4ND4lr/.PnfFVWcTnm.Byhi08GS29TNXqaMj/x6E6OKMmZJCqd.o21THbGDVrwsUGpC9U1IemVWijKNtVToA"

最后一个问题是-更改默认django密码格式:

<algorithm>$<iterations>$<salt>$<hash>

(添加'$at beginning')并将迭代次数切换到1900。有什么想法吗?在

谢谢!在


Tags: sampledjango代码密码ckanpbkdf2sha2sha512
1条回答
网友
1楼 · 发布于 2024-09-25 18:27:07

切换迭代应该和在哈希器上设置iterations属性一样简单。在

class PBKDF2SHA512PasswordHasher(PBKDF2PasswordHasher):
    iterations = 19000

在开头加上一个美元符号会比较麻烦。为了编写密码,您可以覆盖^{},调用super()并在前面加上一个美元符号。但是,您可能需要对^{}内部方法进行monkey-patch,因为Django不希望在编码密码的开头加一美元。在

相关问题 更多 >