sign = OpenSSL::Digest::SHA256.hexdigest("#{access_token}#{access_sign}#{noncestr}")
JSON.parse Base64.decode64(resp)
signature = Base64.encode64(OpenSSL::HMAC.digest('sha1', token['ACCESS_SIGN'], "#{timestamp}#{noncestr}")).strip
token = Digest::MD5.hexdigest(Settings.qichacha_key.to_s + timespan + Settings.qichacha_secret_key).upcase
---------
# new 对象
@verifier = ActiveSupport::MessageVerifier.new('123456')
# => #<ActiveSupport::MessageVerifier:0x007fe522132ba8 @secret="123456", @digest="SHA1", @serializer=Marshal>
# new 对象并指定serializer 为 YAML
@verifier = ActiveSupport::MessageVerifier.new('123456', serializer: YAML)
# => #<ActiveSupport::MessageVerifier:0x007fe522103448 @secret="123456", @digest="SHA1", @serializer=Psych>
要加密的内容可为任何形式的对象,MessageVerifier对象会以指定的对象序列化方法进行序列化。 示例中我们加密的对象是一个包含用户id及过期时间的数组:[user_id, time]
# 加密
cookies[:remember_me] = @verifier.generate([@user.id, 2.weeks.from_now])
# 解密
id, time = @verifier.verify(cookies[:remember_me])
# 应用:判断是否过期并查找用户
if time < Time.now
@current_user = User.find(id)
end
分享到:
相关推荐
本文将详细探讨几种简单但常用的加密方式,以及如何实现这些加密方法。 首先,我们来看MD5(Message-Digest Algorithm 5)哈希加密。MD5是一种广泛使用的哈希函数,它能够将任意长度的输入(也叫做预映射pre-image...
摩斯密码以及十种常用加密方法 摩斯密码是一种古老的加密方法,使用符号“—”和“·”来表示字元,它的历史可以追溯到19世纪。摩斯密码的表示方法有两种:符号“—”用来表示长音,符号“·”用来表示短音。用摩斯...
在这个“常用加密工具集合”中,包含了多种常见的加密算法,如DES、RSA、Base64以及XOR。这些工具可以帮助开发者和安全专家进行数据加密和解密操作,从而保护敏感信息免受未经授权的访问。 1. **DES(Data ...
本资源包"**C语言常用加密算法.rar**"可能包含了多个C语言实现的经典加密算法源代码,帮助开发者深入理解和应用这些算法。 首先,我们来看看几种常见的加密算法: 1. **DES(Data Encryption Standard)数据加密...
深入浅出密码学——常用加密技术原理与应用Christof Paar,Jan Pelzl 本书拥有的诸多特征使得它成为密码学从业者和学生独一无二的资源—本书介绍了绝大多数实际应用中使用的加密算法,并重点突出了它们的实用性。...
本文将详细介绍标题所提及的“前端常用加密Js库”,包括Base64、MD5、SHA1、SHA256以及RSA这五种加密方法,以及它们在实际开发中的应用场景。 1. **Base64**:Base64是一种简单的编码方式,用于将二进制数据转换...
包含了市面上所有常用的加密方式.zip,包含了市面上所有常用的加密方式
本文将深入探讨Java中常用的加密方式,主要关注对称加密和非对称加密。 首先,加密的主要目的是保护数据,防止未经授权的访问。加密可以分为双向加密和单向加密。双向加密允许信息在加密后能够被解密回原始内容,...
常用软件加密宝典,精典啊,看看吧.
Java 常用的 4 种加密方式(MD5+Base64+SHA+BCrypt) Java 加密是指使用 Java 语言来实现数据加密、解密和数字签名等操作。数据加密是指将明文数据转换为难以理解的密文,以保护数据的机密性和完整性。Java 提供了...
总之,《深入浅出密码学——常用加密技术原理与应用》将带领读者深入探索密码学的奥秘,通过详尽的讲解和实例分析,提升对加密技术的理解和运用能力。无论你是网络安全的专业人士,还是对此领域感兴趣的初学者,这...
在ASP(Active Server Pages)开发中,为了保护敏感数据或者防止源代码被轻易查看,开发者经常需要使用加密和解密...压缩包中的“ASP常用加密解密”可能包含更多实例和详细教程,可以帮助你进一步理解并实践这些方法。
本资源包“常用加密工具类(JAVA).zip”提供了12个不同的加密和排序工具类,以及一个log4j配置文件,旨在帮助开发者更方便地处理这些常见任务。以下是这些工具类及配置文件的详细介绍: 1. **MD5加密**:MD5...
摩斯密码以与十种常用加密方法.doc
常用加密
C# 常用加密算法 包括MD5 base64 hax等
深入浅出密码学——常用加密技术原理与应用Cryptanalysis in simple terms -- principle and application of common encryption technology
在C#中,常用的对称加密算法有AES(高级加密标准)、DES(数据加密标准)和Triple DES。例如,使用System.Security.Cryptography命名空间中的Aes类可以实现AES加密。首先创建一个Aes对象,设置密钥和初始化向量,...
在这个“常用加密算法演示”中,我们主要探讨了三种常见的加密算法:SHA256加盐加密、AES ECB加密以及AES CBC加密。下面将详细介绍这些加密算法及其特点。 首先,SHA256是一种广泛使用的哈希函数,用于生成固定长度...
而“js常用加密文件.rar”这个压缩包显然包含了一些常用的JavaScript加密库,这些库用于增强应用程序的安全性,保护数据免受未经授权的访问或篡改。以下是对每个文件的详细解释: 1. **JS数字签名.js**: 数字签名...