ruby-on-rails - 如何在 Ruby on Rails 中实现

标签 ruby-on-rails ruby utf-8

这是一个 C# 代码:

byte[] pb = System.Text.Encoding.UTF8.GetBytes(policy.ToString());

// Encode those UTF-8 bytes using Base64
string policyB = Convert.ToBase64String(pb);

// Sign the policy with your Secret Key using HMAC SHA-1.
System.Security.Cryptography.HMACSHA1 hmac = new System.Security.Cryptography.HMACSHA1();
hmac.Key = System.Text.Encoding.UTF8.GetBytes(secretKey);

byte[] signb = hmac.ComputeHash(System.Text.Encoding.UTF8.GetBytes(policyB));

string signature = Convert.ToBase64String(signb);

如何在 Ruby on rails 中做同样的事情?更具体地说,我需要了解从字符串中获取字节并对其进行 base64 编码并计算 hmac 哈希的函数。

最佳答案

不确定它是否完全相同,但它对我有用:

@policy = ActiveSupport::Base64.encode64s(@policy)

# Sign policy with secret key
digest = OpenSSL::Digest::Digest.new('sha1')
@signature = ActiveSupport::Base64.encode64s(OpenSSL::HMAC.digest(digest, secretKey, @policy))

关于ruby-on-rails - 如何在 Ruby on Rails 中实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3393790/

相关文章:

ruby - 如何使用 rspec 测试 ruby​​ 继承

javascript - 如何将字符串转换为真正的二进制表示形式(UTF-8 或当前使用的任何格式)?

java - jsp 未以正确格式传递 UTF-8 数据

c# - 打开 XML 文件并将其转换为 UTF-8

Java applet 与 Rails 应用程序通信

ruby-on-rails - PostgreSQL 8.4的rake db :create fails,身份验证问题

ruby-on-rails - ActionController::RoutingError(没有路由匹配 {:controller= >"users", :action= >"profile"})

ruby-on-rails - Rails 自定义验证

ruby-on-rails - Array.delete(object) 从数据库中删除?

ruby - 在 Ruby 中定义求和函数