ruby encryption openssl 3des

¿Cómo realizar cálculos Triple DES en Ruby en hexadecimal?



encryption openssl (1)

La clave está en hexadecimal: si observa la página Java que pegó, puede verla fácilmente decodificando los valores binarios de la clave en la salida detallada.

>> des_cbc=OpenSSL::Cipher::Cipher.new("des-ede-cbc") => #<OpenSSL::Cipher::Cipher:0x10116ce28> >> des_cbc.encrypt => #<OpenSSL::Cipher::Cipher:0x10116ce28> >> des_cbc.key="/x23"*8 << "/x45"*8 => "########EEEEEEEE" >> des_cbc.update("/x00"*8).unpack(''H*'') => ["3a42d7a1d1c60c40"]

Estoy tratando de hacer un triple cifrado DES en Ruby. Estoy tratando de replicar los resultados de esta página: http://da.nmilne.com/des.html

Estoy tratando de replicar esos resultados en Ruby. Sospecho que el problema es que se supone que la clave es una cadena, pero necesito pasar una clave hexadecimal. O eso o la cadena cifrada está en el formato incorrecto. O tal vez ambos. :-)

require ''openssl'' des = OpenSSL::Cipher::Cipher.new("des-ede-cbc") des.encrypt des.key="23232323232323234545454545454545" des.update("0000000000000000") res=des.final res.unpack(''H*'') => ["5045c5d37ca4d13b"]

Pero debería ser:

=> ["3a42d7a1d1c60c40"]

¿Alguna sugerencia sobre dónde me estoy equivocando?