Lea*_*kim 8 debian encoding ssl openssl debian-stretch
我使用 OpenSSL 对明文进行编码并在多个远程服务器上对其进行解码。当我测试我的脚本以确保 Debian 9 Stretch 兼容性时,发现了一个错误。
这是我测试的方式:Debian 6,OpenSSL 0.9.8o,编码字符串:
# echo "Hi guys" | openssl des3 -salt -a -k "testkey"
U2FsdGVkX1+I3EBhXjqrm+MJOmKRpj+Y5TtNJaJjI/s=
Run Code Online (Sandbox Code Playgroud)
在同一台服务器上解码:
# echo "U2FsdGVkX1+I3EBhXjqrm+MJOmKRpj+Y5TtNJaJjI/s=" | openssl des3 -salt -a -d -k "testkey"
Hi guys
Run Code Online (Sandbox Code Playgroud)
Debian 9,OpenSSL 1.1.0f,解码字符串:
# echo "U2FsdGVkX1+I3EBhXjqrm+MJOmKRpj+Y5TtNJaJjI/s=" | openssl des3 -salt -a -d -k "testkey"
bad decrypt
140259873273088:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:../crypto/evp/evp_enc.c:535:
z???AR?
Run Code Online (Sandbox Code Playgroud)
在解码过程中:
Debian 7,OpenSSL 1.0.1t:
$ echo "U2FsdGVkX1+I3EBhXjqrm+MJOmKRpj+Y5TtNJaJjI/s=" | openssl des3 -salt -a -d -k "testkey"
Hi guys
Run Code Online (Sandbox Code Playgroud)
Debian 8,OpenSSL 1.0.1t
# echo "U2FsdGVkX1+I3EBhXjqrm+MJOmKRpj+Y5TtNJaJjI/s=" | openssl des3 -salt -a -d -k "testkey"
Hi guys
Run Code Online (Sandbox Code Playgroud)
所以我测试了在 Debian 9, OpenSSL 1.1.0f 测试服务器上进行编码:
# echo "Hi guys" | openssl des3 -salt -a -k "testkey"
U2FsdGVkX1+p/LDtOotR/gmVTfGL+LabNPvLxKqwbOk=
Run Code Online (Sandbox Code Playgroud)
并且在同一台服务器上解码正在工作:
# echo "U2FsdGVkX1+p/LDtOotR/gmVTfGL+LabNPvLxKqwbOk=" | openssl des3 -salt -a -d -k "testkey"
Hi guys
Run Code Online (Sandbox Code Playgroud)
但是解码在其他 3 个服务器上不起作用:Debian 6、OpenSSL 0.9.8o:
# echo "U2FsdGVkX1+p/LDtOotR/gmVTfGL+LabNPvLxKqwbOk=" | openssl des3 -salt -a -d -k "testkey"
bad decrypt
12605:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:330:
??Rv??
Run Code Online (Sandbox Code Playgroud)
Debian 7,OpenSSL 1.0.1t:
$ echo "U2FsdGVkX1+p/LDtOotR/gmVTfGL+LabNPvLxKqwbOk=" | openssl des3 -salt -a -d -k "testkey"
bad decrypt
139771367589544:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:516:
??Rv??
Run Code Online (Sandbox Code Playgroud)
Debian 8,OpenSSL 1.0.1t:
# echo "U2FsdGVkX1+p/LDtOotR/gmVTfGL+LabNPvLxKqwbOk=" | openssl des3 -salt -a -d -k "testkey"
bad decrypt
139719827605136:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:516:
??Rv??
Run Code Online (Sandbox Code Playgroud)
我检查了 OpenSSL 依赖项,并在每个版本的多个服务器上进行了测试。
Lea*_*kim 17
抱歉,几分钟后,我在 Sebastian Andrzej Siewior 的 Debian 错误跟踪器上找到了答案:
呸。他们将默认摘要从 md5 更改为 sha256 以创建密钥。如果您将 '-md md5' 添加到 1.1. openssl 然后它会工作。反过来,您需要“-md sha256”来保持 1.0 的快乐。
因此,通过在 Debian 9 上添加“-md md5”,它适用于较旧的 OpenSSL 编码字符串:
# echo "U2FsdGVkX1+I3EBhXjqrm+MJOmKRpj+Y5TtNJaJjI/s=" | openssl des3 -salt -md md5 -a -d -k "testkey"
Hi guys
Run Code Online (Sandbox Code Playgroud)
通过在较旧的 Debian 上添加“-md sha256”,较新的 OpenSSL 编码字符串也可以工作:
# echo "U2FsdGVkX1+p/LDtOotR/gmVTfGL+LabNPvLxKqwbOk=" | openssl des3 -md sha256 -salt -a -d -k "testkey"
Hi guys
Run Code Online (Sandbox Code Playgroud)
保留线程以节省其他人的时间:)
| 归档时间: |
|
| 查看次数: |
5607 次 |
| 最近记录: |