使用PHP7.1的openssl加解密MCRYPT_3DES,与7.1之前的版本匹配

$message = "Lorem ipsum";
$key = "123456789012345678901234";
$iv = '';

$message_padded = $message;
$message_padded = self::pkcs5_pad($message_padded, 8);
if (strlen($message_padded) % 8) {
    $message_padded = str_pad($message_padded,
        strlen($message_padded) + 8 - strlen($message_padded) % 8, "\0");
}

$encrypted_mcrypt = mcrypt_encrypt(MCRYPT_3DES, $key,
    self::pkcs5_pad($message, 8), MCRYPT_MODE_ECB, $iv);
$encrypted_openssl = openssl_encrypt($message_padded, "DES-EDE3",
    $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING);

print_r([
    strtoupper(bin2hex($encrypted_mcrypt)),
    strtoupper(bin2hex($encrypted_openssl)),
]);

你可能感兴趣的:(php)