【发布时间】:2012-10-14 15:50:48
【问题描述】:
我有一个 Django 应用程序,它在 Ubuntu 机器上运行重置 unix 用户密码,但我的开发环境是 OS X,我遇到了这种烦人的情况:
操作系统:
>>> import crypt
>>> crypt.crypt('test','$1$VFvON1xK$')
'$1SoNol0Ye6Xk'
Linux:
>>> import crypt
>>> crypt.crypt('test','$1$VFvON1xK$')
'$1$VFvON1xK$SboCDZGBieKF1ns2GBfY50'
通过阅读 crypt 的 pydoc,我看到它使用了特定于操作系统的 crypt 实现,因此我还在两个系统中测试了以下代码,结果与 Python 相同:
#include <unistd.h>
int main() {
char *des = crypt("test","$1$VFvON1xK$ls4Zz4XTEuVI.1PnYm28.1");
puts(des);
}
如何让 OS X 的 crypt() 实现产生与 Linux crypt() 相同的结果?
为什么 Python 实现没有涵盖这一点(正如我对跨平台部署的这种情况所期望的那样)?
【问题讨论】:
标签: python c encryption