На самом деле это вообще не решение openssl, но, может быть, у вас есть рабочий пример.
require 'mcrypt'
require 'openssl'
plaintext = 'password'
puts plaintext
key = '12345678901234567890123456789012'
enc = Mcrypt.new(:rijndael_256, :ecb, key, nil, :zeros)
encrypted = enc.encrypt(plaintext)
puts Digest::MD5.hexdigest(encrypted)
Я использовал дополнительный драгоценный камень (ruby-mcrypt).Кажется, проблема с openssl.На самом деле проблема заключается в том, что Openssl не поддерживает заполнение нулями и использует no-padding или default-openssl-padding.В связи с тем, что вы используете нулевое заполнение в php, вы должны использовать нулевое заполнение также в ruby.
Вывод на моем компьютере для сценария php:
[~/test] ➔ php5 t.php
6337137fd88148250fd135a43dbeb84a
и для сценария ruby:
[~/test] ➔ ruby t2.rb
password
6337137fd88148250fd135a43dbeb84a
и моя рубиновая версия:
[~/test] ➔ ruby -version
ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]
Надеюсь, это поможет.