美文网首页
Rails对于Cookie的加密和解密方法

Rails对于Cookie的加密和解密方法

作者: waynedeng | 来源:发表于2017-03-12 18:42 被阅读300次

Rails的Session默认是存储在Cookies中的,Cookies显性存储在浏览器中,因此基于安全性的考虑,对Cookies进行加密是非常有必要的。

比如session的数据{user_id: 100},加密存储在Cookies中可能就是这样的形式:

BAh7BzoHaWRpBjoJbmFtZUkiC3cuZGVuZwY6BkVU--a547f29403e3d53174ddd88b7a3a64dfb8fdce6024d27105292fdbdf43c19f07

具体实现的方法是使用ActiveSupport::MessageVerifier这个类。

http://api.rubyonrails.org/classes/ActiveSupport/MessageVerifier.html

    @verifier = ActiveSupport::MessageVerifier.new('s3Krit', digest: 'SHA256')

    # 加密
    cookies[:remember_me] = @verifier.generate([@user.id, 2.weeks.from_now])

    # 解密
    id, time = @verifier.verify(cookies[:remember_me])

这里的s3Krit,是加密用的secret,一般会使用特别长的随机字符,Rails中会使用config/secrets.yml中的设置,加密后被破解的几率就大大降低了。

为什么会研究这个,因为前后端分离,打算在API调用的请求加上用户登录的验证,需要把用户的session数据加密记录在前端,调用API的时候请求的header中加上此数据。

相关文章

  • Rails对于Cookie的加密和解密方法

    Rails的Session默认是存储在Cookies中的,Cookies显性存储在浏览器中,因此基于安全性的考虑,...

  • Cookie DES加密 CryptoJS

    CryptoJS 公钥,私钥 获取cookie 设置cookie EDS 解密 EDS加密

  • python加密解密

    1. md5加密 方法一:使用Crypto 方法二:使用hashlib 2. AES加密解密 导入库 加密 解密

  • laravel密码加密

    Laravel框架中 (1) 辅助方法:'加盐' 加密解密 : (2)门面:Hash加密和验证

  • 字符串的加密与解密(3DES、sha1、MD5) - swift

    对于字符串的加密解密,可以给String类扩展方法,方便使用 Swift中使用3DES/sha1/MD5加密解密算...

  • iOS AES加密

    导入头文件 加密方法: 解密方法:

  • 密码学入门

    加密方法分类: 单钥加密:加密和解密都用同一套密码,如莫尔斯电码 双钥加密:加密和解密使用两套密码,即公钥和私钥,...

  • 常用加密算法探寻

    原文地址在开发过程中,常常用到各种加密方法和算法,本文总结了几种常用加密方法的原理。 对称加密 原理: 加密和解密...

  • 区块链100讲:盘点那些常用的加密算法原理

    在开发过程中,常常用到各种加密方法和算法,本文总结了几种常用加密方法的原理。 1 对称加密 原理:加密和解密数据使...

  • 加密与解密,验签

    密码技术对于通信安全至关重要,它主要源于两个方面,加密/解密和签名/验签。 加密与解密: 当Master给Ghos...

网友评论

      本文标题:Rails对于Cookie的加密和解密方法

      本文链接:https://www.haomeiwen.com/subject/xxhxnttx.html