使用python在Windows上创建兼容的ldap密码(md5crypt)
你知道如何在 Windows 上通过 python 创建 ldap 兼容密码(首选 md5crypt)吗?
我曾经在 Linux 中编写类似的内容,但 Windows 上不存在 crypt 模块
char_set = string.ascii_uppercase + string.digits
salt = ''.join(random.sample(char_set,8))
salt = '$1$' + salt + '$'
pwd = "{CRYPT}" + crypt.crypt(str(old_password),salt)
Do you know how to create a ldap compatible password (preferred md5crypt) via python on Windows
I used to write something like this in Linux but the crypt module is not present on Windows
char_set = string.ascii_uppercase + string.digits
salt = ''.join(random.sample(char_set,8))
salt = '$1
+ salt + '
pwd = "{CRYPT}" + crypt.crypt(str(old_password),salt)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Passlib python 库包含所有 crypt(3) 算法的跨平台实现。特别是,它包含 ldap_md5_crypt,听起来就像什么你想要的。下面是如何使用它(此代码可以在 Windows 或 Linux 上运行):
我应该注意,虽然 MD5-Crypt 得到了广泛的支持(Linux、所有 BSD、内部在 openssl 中),但它绝对不是可用的最强哈希确实非常不安全,如果可能的话应该避免。如果您想要与 linux crypt() 兼容的最强哈希,SHA512-Crypt 可能是您的最佳选择。它增加了可变回合,以及内部对 MD5-Crypt 的一些其他改进。
The Passlib python library contains cross-platform implementations of all the crypt(3) algorithms. In particular, it contains ldap_md5_crypt, which sounds like exactly what you want. Here's how to use it (this code will work on windows or linux):
I should note that while MD5-Crypt is widely supported (Linux, all the BSDs, internally in openssl), it's
none-the-less not the strongest hash availablereally horribly insecure, and should be avoided if at all possible. If you want the strongest hash that's compatible with linux crypt(), SHA512-Crypt is probably the way to go. It adds variable rounds, as well as some other improvements over MD5-Crypt internally.从这里 http://www.openldap.org/faq/data/cache/ 347.html
用于生成 SHA 哈希值的变体之一可以是:
此代码适用于 Python。
我(不仅是我)不再建议使用 MD5。
附言。点击链接您可以尝试一些 Windows 变体。
From here http://www.openldap.org/faq/data/cache/347.html
One of the variants for generating SHA-hash can be:
This code is for Python.
I (and not only me) don't recommend to use MD5 anymore.
PS. Follow the link you can try some windows variants.
您需要使用 fcrypt,这是一个纯 Python 实现Unix 模块
crypt
的一部分。它比 crypt 慢一点,但具有相同的功能。You'll want to use fcrypt, which is a pure Python implementation of the Unix module
crypt
. It's a bit slower thancrypt
but it has the same functionality.免责声明:我了解谷歌,但不了解密码学。
来自
crypt
文档:您可以查看
md5crypt.py
。或者,crypt
for Windows 是GnuWin32。这是 Unix 手册页的一些内容; Windows 界面应该类似。Disclaimer: I know Google, not cryptography.
From the
crypt
docs:You could have a look at
md5crypt.py
. Alternatively,crypt
for Windows is part of GnuWin32. Here's some of the Unix man page; the Windows interface should be similar.