繁体   English   中英

如何使用openssl解密加密文件? [关闭]

[英]How to decrypt the encrypted file using openssl? [closed]

我得到了使用OpenSSL支持的对称加密算法之一进行加密并以base64编码的文件。 对称密码算法未知。 解密所需的密码是“ hiking”。

文件内容为U2FsdGVkX197Fk00w7IT0UQO4SftRXiS19kPPYM3MUiMA + XdAbjSDw ==

首先:我通过执行文件秘密来确定文件类型结果:

secret.out: openssl enc'd data with salted password, base64 encoded

第二:我使用base64命令解密base64

第三:解密base64后,我执行file命令确定文件类型

结果:

secretbase64.out: openssl enc'd data with salted password

第三:我使用opensl使用不同的密码进行解密。错误指出解密不正确。 我在考虑是否有办法确定此文件上使用的密码和摘要

我尝试使用针对不同密码的openssl解密文件。 它显示了错误的解密错误。

openssl enc -aes-128-cbc -d -in secretbase64.out -out secretbase64-aes-128-cbc  -k hiking
openssl enc -aes-128-ecb -d -in secretbase64.out -out secretbase64-aes-128-ecb  -k hiking
openssl enc -aes-192-cbc -d -in secretbase64.out -out secretbase64-aes-192-cbc  -k hiking

我还执行了openssl支持的所有密码。

aes-128-cbc       aes-128-ecb       aes-192-cbc       aes-192-ecb       
aes-256-cbc       aes-256-ecb       base64            bf                
bf-cbc            bf-cfb            bf-ecb            bf-ofb            
camellia-128-cbc  camellia-128-ecb  camellia-192-cbc  camellia-192-ecb  
camellia-256-cbc  camellia-256-ecb  cast              cast-cbc          
cast5-cbc         cast5-cfb         cast5-ecb         cast5-ofb         
des               des-cbc           des-cfb           des-ecb           
des-ede           des-ede-cbc       des-ede-cfb       des-ede-ofb       
des-ede3          des-ede3-cbc      des-ede3-cfb      des-ede3-ofb      
des-ofb           des3              desx              rc2               
rc2-40-cbc        rc2-64-cbc        rc2-cbc           rc2-cfb           
rc2-ecb           rc2-ofb           rc4               rc4-40            
seed              seed-cbc          seed-cfb          seed-ecb          
seed-ofb          

它应该解密文件,我应该看到内容。 每个密码的错误如下所示

bad decrypt
140422261063872:error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length:../crypto/evp/evp_enc.c:525:

有没有办法确定特定文件的准确密码和摘要,并使用openssl解密?

并不是真正的答案,但太多的评论。

  1. openssl enc -d可以为您完成base64解码,请参见手册页上的-a

  2. 但是不,密码(包括模式)和PBKDF哈希未记录在文件中,并且现代密码被设计为与随机数据(因此彼此之间)也没有区别( 长度除外),因此您必须知道或大多猜测参数。 您的密文不是16字节的倍数,因此它不能是AES Camellia SEED的块模式(ECB或CBC)。 8字节的倍数,因此可以是DES三重DES的块模式(OpenSSL具有两个键控选项:des-ede和des-ede3)Blowfish IDEA。 它也可以是任何(块)算法的流模式,也可以是流密码(RC4或ChaCha20或更高版本1.1.0中的流密码),尽管这些可能性较小。

  3. 您的“所有密码”列表几乎不是全部。 这是语法帮助中给出的列表,这些密码可以用作命令名称 (以及在OpenSSL的构建中,该构建已将IDEA从构建中删除,就像一些严格的自由构建一样,由于过去有关专利状态的问题,例如Debian)。 这只是enc命令支持的密码算法的一个子集,更不用说libcrypto了。 使用openssl list-cipher-algorithmsopenssl enc -? 在通过1.0.2或openssl list -cipher-algorithms (增加的空间)或openssl enc -ciphers在1.1.0以上版本中的完整列表。 请注意,此列表实际上是EVP支持的算法和模式,但并非命令行enc支持全部; 特别是enc不能使用身份验证(也称为AEAD =具有附加数据的身份验证加密)模式,即AES-GCM AES-CCM和ChaCha20-Poly1305或密钥包装模式。

祝好运。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM