可逆式、不可逆式で暗号化したい
不可逆式
Class: BCrypt::Password — Documentation for codahale/bcrypt-ruby (master)
encrypted_data = BCrypt::Password.create("test12345")
# $2a$12$5L9lnrTYgFS5x/pOs15Y3OHTSS1A4ThOlKzbWYJf.AlJMXkeK8AtK
encrypted_data == "test12345"
# true
可逆式
A simple way to encrypt and decrypt in Rails 5 | by Daveyon Mayne | Medium
key = Rails.application.credentials.config[:secret_key_base][1..32] # or ENV["SECRET_KEY_BASE"][1..32] in trial, staging or production
crypt = ActiveSupport::MessageEncryptor.new(key)
consumer_key = "test12345"
encrypted_data = crypt.encrypt_and_sign(consumer_key, purpose: :campaign_code) # or crypt.encrypt_and_sign(self.consumer_key)
puts encrypted_data
# UscL3xFA6Lv5Ad/hJz/zl5N37Q==--tgjUj9WFgB1OWIp1--JuYB0iFWEfqYRtfXoZiRvg==
puts crypt.decrypt_and_verify(encrypted_data, purpose: :campaign_code)
# test12345