如何使用PHP解码OpenSSL DES3编码的字符串?

如何使用PHP解码OpenSSL DES3编码的字符串?,php,encryption,openssl,cryptography,3des,Php,Encryption,Openssl,Cryptography,3des,我使用OpenSSL使用以下命令对字符串进行编码: openssl enc-des3-md md5-pass-pass:mypass-out outfile这是做什么用的key.=substr($key,0,8)???@Abracadver在我解密失败后,我无意中发现它将此附加到密钥中,并尝试了它。遗憾的是,他根本不工作DES3。两者都是20世纪的加密算法。注意:我们已经进入21世纪。您可以一直尝试,直到找到openssl专有的EVP_BytesToKey密钥派生函数。请注意,生成的密文以Sal

我使用OpenSSL使用以下命令对字符串进行编码:


openssl enc-des3-md md5-pass-pass:mypass-out outfile这是做什么用的
key.=substr($key,0,8)???@Abracadver在我解密失败后,我无意中发现它将此附加到密钥中,并尝试了它。遗憾的是,他根本不工作DES3。两者都是20世纪的加密算法。注意:我们已经进入21世纪。您可以一直尝试,直到找到openssl专有的
EVP_BytesToKey
密钥派生函数。请注意,生成的密文以
Salted__u
开头,后跟该函数所需的8字节salt。您可以找到该函数的实现。别忘了给那个贴出答案的可怜的sap投票。@Kemal在这里把你自己的问题的实现作为一个答案,像我这样的人会给它投票,然后你可以给另一个答案投票。固定的。我不能再投票反对这个问题本身了:)
<?php
$secret='mypass';
$key = md5($secret, true);
$key .= substr($key, 0, 8);
echo openssl_decrypt(file_get_contents('outfile'), 'des', $key, OPENSSL_ZERO_PADDING | OPENSSL_RAW_DATA);