Rails实现字段加密存储(rail是什么意思)干货满满

随心笔谈9个月前发布 admin
204 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章讨论了一个名为`EncryptedStringSerializer`的类及其在`UserAddress`模型中的实现。`EncryptedStringSerializer`提供加密和解密功能,用于对字符串进行加密和解密操作,其中`load`方法用于解密或返回空字符串,`dump`方法用于加密。此外,文章提到`UserAddress`模型继承自`ActiveRecord::Base`,并在多个字段中使用了该序列化器进行加密,以提高数据的安全性。


class EncryptedStringSerializer
def self.load(value)
value.to_s.blank? ? ” : decrypt(value)
end

def self.dump(value)
encrypt(value || ”)
end

private

def self.encrypt(value)
encryptor.encrypt_and_sign(value)
end

def self.decrypt(value)
encryptor.decrypt_and_verify(value)
end

def self.encryptor
@encryptor ||=ActiveSupport::MessageEncryptor.new(Settings.message_encryptor_key)
end
end

class UserAddress < ActiveRecord::Base
serialize :phone, EncryptedStringSerializer
serialize :first_name, EncryptedStringSerializer
serialize :last_name, EncryptedStringSerializer
serialize :country, EncryptedStringSerializer
serialize :state, EncryptedStringSerializer
serialize :city, EncryptedStringSerializer
serialize :address1, EncryptedStringSerializer
serialize :address2, EncryptedStringSerializer
serialize :zipcode, EncryptedStringSerializer
end

© 版权声明

相关文章