Шифрование в PHP (mcrypt), дешифрование в Ruby (OpenSSL :: Cipher)

я работаю над кросс-языковым проектом, обертывающим API-интерфейс ruby / Sinatra в PHP для использования другой командой. Никакая информация, предоставляемая API, не является конфиденциальной, но мы бы предпочли, чтобы она не была легко доступна для случайного наблюдателя, угадывающего URL.

    private function generateSliceIDToken($key){
    $currentEpoch = time();
    $ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);
    $encryptedBytes = mcrypt_encrypt(
        MCRYPT_RIJNDAEL_128,
        $key,
        $currentEpoch.**Passcode**,
        MCRYPT_MODE_CBC, $iv
    );
    $ivAndEncryptedBytes = $iv . $encryptedBytes;

    return urlencode(urlencode(base64_encode($ivAndEncryptedBytes)));

Код выше Зашифровывает пароль и отметку времени, используя mcrypt 'Реализация RIJNDAEL и ее кодирование для отправки в ruby API

if identifier.validate_token Base64.decode64(URI.unescape( URI.unescape(params[:token])))

Синатра хватает его и декодирует

def validate_token(token)
  cipher = OpenSSL::Cipher::AES.new(128, 'CBC')
  cipher.decrypt
  cipher.key = **key**
  cipher.iv = token[0,16]

  plain = cipher.update(token[16..-1]) + cipher.final
  return plain[10,8] == **Passcode**
end

и передает его для расшифровки

Проблема в том, что расшифровка завершается сПлохой расшифровка ошибка

Мне поверили, что МакриптS RIJNDAEL и Cipher 'S AES были совместимы, но это предположение неверно? Любая помощь, которую я могу получить, была бы наиболее полезной.

Ответы на вопрос(1)

Ваш ответ на вопрос