2011-03-30 64 views
38

Hace un tiempo vi la posibilidad de descifrar y encriptar cadenas en rieles sin incluir ninguna biblioteca, pero no puedo encontrar la publicación del blog.Encriptar, desencriptar usando Rails

Quiero encriptar y desencriptar cadenas sin incluir nada. Usando la misma clave tiene para todo lo demás en los rieles, cookies firmadas, por ejemplo.

¿Alguna idea?

Respuesta

106

¿Te refieres a esta ?: ActiveSupport::MessageEncryptor. Aquí está la manera de reutilizar los carriles 4 del secreto de la aplicación:

crypt = ActiveSupport::MessageEncryptor.new(Rails.application.secrets.secret_key_base) 
encrypted_data = crypt.encrypt_and_sign('my confidental data') 

Y los datos cifrados se puede descifrar con:

decrypted_back = crypt.decrypt_and_verify(encrypted_data) 

Rails 3 Anteriormente estaba usando la opción de configuración secret_token y métodos dispositivo de cifrado eran encryptdecrypt.

+6

que era bastante proxeneta. – Kristian

+4

¡Una gran solución para lo que estaba buscando, gracias! Solo un aviso, la interfaz ActiveSupport :: MessageEncryptor ha cambiado desde Rails 4.0 y el ejemplo está desactualizado. Debería llamar a encrypt_and_sign en lugar de encrypt y decrypt_and_verify en lugar de descifrar. –

+0

Gracias George, actualicé la respuesta e hice un nuevo ejemplo. – gertas

Cuestiones relacionadas