需求
希望在 C++
中使用 sha1
加密。
解决
openssl
也可以提供 sha1
加密,但是听说有滴血漏洞,所以考虑使用
cryptopp
.
下载 cryptopp
之后,需要在 virtual studio
中编译,但是因为没有安装,并且我用的还是 mingw
编译环境,所以尝试在 qt
中编译。
- 使用
qt
命令行,切换到源码目录,然后qmake --project
来生成qt
工程。 - 使用
qt creator
打开之后,修改pro
文件,把TEMPLATE = app
改为TEMPLATE = lib
, 重新编译。 - 编译会有很多报错,基本都是
intel
的一些指令没有,可以去 https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=3828 中搜索错误信息,然后找CPUID Flags
这一行对应的提示,在这个提示前增加-m
作为 flag, 放到pro
文件中. 如下:
QMAKE_CXXFLAGS += "-msse2"
有太多的报错, 所以暂时先放弃了,等后面有时间再搞。获取可以尝试安装
vs
, 然后配置为 mingw
编译环境,也是一种办法。或者找找单纯的 sha1
加密库。
参考
C/C++编程:openssl使用(win10+vs2019)
Qt 5.8.3 部署/添加 Crypto++第三方库(5.6.5版本)
SSE优化指令集编译错误: inlining failed in call to always_inline ‘xxx’: target specific option mismatch xxx
SSE优化指令集编译错误: inlining failed in call to always_inline ‘xxx’: target specific option mismatch xxx
解决error: inlining failed in call to always_inline ‘int _mm_popcnt_u32(unsigned int)’