py bcrypt在win 7 64位python上安装

py bcrypt在win 7 64位python上安装,python,c,gcc,compiler-construction,module,Python,C,Gcc,Compiler Construction,Module,正在尝试在win7上安装py bcrypt。Python是64位的。第一个错误无法找到vcvarsall.bat。谷歌知道我需要安装mingw。今天就安装了它 C:\tools\python_modules\py-bcrypt-0.2>python setup.py build -c mingw32 running build running build_py running build_ext building 'bcrypt._bcrypt' extension C:\MinGW\bi

正在尝试在win7上安装py bcrypt。Python是64位的。第一个错误无法找到vcvarsall.bat。谷歌知道我需要安装mingw。今天就安装了它

C:\tools\python_modules\py-bcrypt-0.2>python setup.py build -c mingw32
running build
running build_py
running build_ext
building 'bcrypt._bcrypt' extension
C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -Ic:\Python27\include -Ic:\Python27\PC -c bcrypt/bcrypt_python.c -o b
d\temp.win-amd64-2.7\Release\bcrypt\bcrypt_python.o
bcrypt/bcrypt_python.c:29:26: error: expected declaration specifiers or '...' before 'u_int8_t'
bcrypt/bcrypt_python.c:29:38: error: expected declaration specifiers or '...' before 'u_int16_t'
bcrypt/bcrypt_python.c:29:49: error: expected declaration specifiers or '...' before 'u_int8_t'
bcrypt/bcrypt_python.c: In function 'bcrypt_encode_salt':
bcrypt/bcrypt_python.c:56:2: error: too many arguments to function 'encode_salt'
bcrypt/bcrypt_python.c:29:6: note: declared here
error: command 'gcc' failed with exit status 1

不知道下一步该怎么办。我想我不会使用bcrypt,而是尝试其他东西。还有其他建议吗?

我已经查看了bcrypt源代码,但不明白为什么会出现错误(目前手头没有Windows系统可供测试)。虽然查看pybcrypt时,它似乎还有其他Windows编译问题,所以可能不仅仅是您。不过,据猜测,通过额外的编译参数向gcc参数中添加“-std=C99”可能至少修复了一些错误

除此之外,还有两种选择:

  • 是另一个C扩展bcrypt实现,它可能会为您的系统编译

  • 是一个通用密码哈希库。虽然它依赖于bcryptor/pybcrypt对bcrypt的支持,但它内置了对许多其他可能适用于您的密码哈希的支持,例如或

  • 是另一个通用密码哈希库。在Windows上,它同时提供BCrypt和PBKDF2-HMAC-SHA512密码哈希。(我会直接链接到这些,但文档不太允许我这样做)


假设您使用的是mingw64,您应该将ifdefs上的WIN32中的MSC版本更改为bcrypt.c、bcrypt\u python.c和pybc\u blf.h

我也遇到了同样的问题,我通过应用此链接中找到的补丁修复了它:

py-bcrypt_11.贴片

必须手动应用它

从该线程来看,问题的根源是

根据(在各种windows操作系统、cygwins、mingw和其他操作系统下定义的标志),最好使用WIN32而不是MSC版本,再加上从bzero到memset的更改,这将在MSVC和MingW32下编译


希望有帮助

有一个用于windows的py bcrypt的编译版本。您可以访问下载.exe文件并安装。

我在尝试使用VS2012在Windows 7上安装py bcrypt(通过pip)时,偶然发现了这个相当旧的线程。显然,这仍然不起作用(我还得到了“missing vcvars.bat”错误)

py bcrypt有一个专用的Windows fork,名为,我可以使用它安装它,而不会出现任何问题

pip install py-bcrypt-w32

我在Python3.4.1中遇到了同样的问题,前面的答案都不起作用。我最终使VisualStudio2010 64位编译器正常工作,并因此在easy_install中安装了cryptacular和py bcrypt。请看我的详细回答:

现在是2016年,我也面临同样的问题。直接从下载控制盘,然后运行以下命令

pip install <whl-file>
pip安装

我想windows并不是为了这个而裁剪的:)我可能只会使用simple hashlib.sha512,就这样。来自bcryptor的更多错误。下一步我试试隐语,就这样。好的,隐语很管用。这是bcrypt的作品。问题。难道我不该给bcrypt加盐吗?只是问一下。如果您正在遵循Cryptacular文档顶部的示例,
manager.encode(password)
负责盐的生成。。。您可以通过运行两次
manager.encode(“test”)
来测试这一点,您将看到散列是不同的-这表明它负责生成新的salt。(如果您有兴趣,请简要介绍bcrypt哈希字符串格式)。好的,请稍候。所以我不需要单独储存盐?子弹和盐都储存在肉馅里?是的。。。事实上,我链接到的库中的所有密码散列都是完全独立的,代码自动处理salt生成。为密码库调用.encode()为密码库调用.encrypt()为密码库调用所有这些功能。。。然后只需调用.verify()检查密码。如果您想要不同于默认值的轮数,请在调用encode()时将其作为rounds=value传递给。知道这是否很快会有0.4轮吗?@Joe我刚刚添加了0.4轮。@alexandrul真棒!非常感谢。找不到。那里有前任吗?我想这应该是公认的答案。只需在windows上使用py-bcrypt-w32和py-bcrypt for dev,每个环境有两个不同的requirements.txt文件。