我已经下载并编译了openssl-1.1.0.
我可以加密,并使用相同的exe解密openssl(如这里)
me@ubuntu:~/openssl-1.1.0$ LD_LIBRARY_PATH=. ./apps/openssl aes-256-cbc -a -salt -in file.txt -out file.txt.enc
enter aes-256-cbc encryption password: 123
Verifying - enter aes-256-cbc encryption password:
me@ubuntu:~/openssl-1.1.0$ LD_LIBRARY_PATH=. apps/openssl aes-256-cbc -a -d -in file.txt.enc -out file.txt.dec
enter aes-256-cbc decryption password: 123
Run Code Online (Sandbox Code Playgroud)
这openssl用于:libcrypto.so.1.1, libssl.so.1.1
当我尝试openssl使用我的ubuntu上安装的解密时,它使用:
/lib/x86_64-linux-gnu/libssl.so.1.0.0, /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
我收到一个错误:
me@ubuntu:~/openssl-1.1.0$ openssl aes-256-cbc -a -d -in file.txt.enc -out file.txt.dec2
enter aes-256-cbc decryption password: 123
bad decrypt
140456117421728:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:539:
Run Code Online (Sandbox Code Playgroud)
可能是什么原因导致的 谢谢
我想利用SHA1 HMAC的PBKDF2算法(基于这个答案).
如何通过加密库来利用它?
我开始看man openssl,但openssl passwd命令(手册页)只支持少量算法.查看加密文档,evp模块具有EVP_BytesToKey方法.
仔细选择参数将提供PKCS#5 PBKDF1兼容的实现.但是,新应用程序通常不应使用此功能(例如,首选PCKS#5的PBKDF2).
这让我回到原来的问题,如何通过加密利用PBKDF2?我是否需要深入研究代码并调用非API公开的方法(例如PKCS5_PBKDF2_HMAC)?(如果是的话,是什么让它不被暴露?)