gpt4 book ai didi

python - 我如何(成功地)从命令行 openSSL 解码编码密码?

转载 作者:太空狗 更新时间:2023-10-29 11:06:37 26 4
gpt4 key购买 nike

使用 PyCrypto(尽管我在 ObjC 中也尝试过使用 OpenSSL 绑定(bind)):

from Crypto.Cipher import DES
import base64
obj=DES.new('abcdefgh', DES.MODE_ECB)
plain="Guido van Rossum is a space alien.XXXXXX"
ciph=obj.encrypt(plain)
enc=base64.b64encode(ciph)
#print ciph
print enc

输出 base64 编码的值:

ESzjTnGMRFnfVOJwQfqtyXOI8yzAatioyufiSdE1dx02McNkZ2IvBg==

如果你在解释器中,ciph会给你

'\x11,\xe3Nq\x8cDY\xdfT\xe2pA\xfa\xad\xc9s\x88\xf3,\xc0j\xd8\xa8\xca\xe7\xe2I\xd15w\x1d61\xc3dgb/\x06'

很简单。我应该能够将此输出通过管道传输到 OpenSSL 并对其进行解码:

我测试以确保 b64 解码有效 -

python enctest.py | openssl enc -base64 -d
+ python enctest.py
+ openssl enc -base64 -d
,?Nq?DY?T?pA???s??,?jب???I?5w61?dgb/

不漂亮,但你可以看到它解码正常,“dgb”和“Nq”仍然存在。

但要全力以赴:

python enctest.py | openssl enc -base64 -d | openssl enc -nosalt -des-ecb -d -pass pass:abcdefgh
+ python enctest.py
+ openssl enc -nosalt -des-ecb -d -pass pass:abcdefgh
+ openssl enc -base64 -d
bad decrypt
15621:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:461:
j?7????vc]???LE?m³??q?

我做错了什么?我试过使用 -k abcdefgh -iv 0000000000000000 或交互式输入密码 - 同样的问题。

最佳答案


echo ESzjTnGMRFnfVOJwQfqtyXOI8yzAatioyufiSdE1dx02McNkZ2IvBg== | openssl enc -nopad -a -des-ecb -K 6162636465666768 -iv 0 -p -d

6162636465666768 是以十六进制写出的 ASCII“abcdefgh”。

但请注意,ECB 模式下的 DES 可能不是编码密码的好方法,也不是您可能听说过在 Unix 系统上使用的“DES crypt”。(对于密码,通常最好使用难以逆转的算法(通过重新生成结果而不是解密存储的密码来检查密码)。即使您确实需要能够解密这些加密的密码,单 DES 和就保密性而言,尤其是欧洲央行是糟糕的选择。)

关于python - 我如何(成功地)从命令行 openSSL 解码编码密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/426294/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com