【问题标题】:SHA256 Base64 Hash in RubyRuby 中的 SHA256 Base64 哈希
【发布时间】:2017-08-07 23:28:45
【问题描述】:

我们正在尝试在 ruby​​ 中实现 SHA256 Base64 哈希,它不会像在 C# 中那样返回预期的结果。

下面是我们的 C# 示例代码。

    public static string HashSHA256ToBase64(string phrase)
    {
        if (phrase == null)
            return null;
        var encoder = new UTF8Encoding();
        var sha256Hasher = new SHA256CryptoServiceProvider();
        var hashedDataBytes = sha256Hasher.ComputeHash(encoder.GetBytes(phrase));

        return Convert.ToBase64String(hashedDataBytes);
    }

为此,我们需要用 ruby​​ 编写等效的代码。我们正在尝试如下。

Base64.encode64(OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), "", phrase))

它提供的结果与 C# 不同。

测试短语:V2dcZBpzzglD1ynW5ZAyFocs9wtpR624wlla9gujw0I=RquZ/QzazPM=

预期结果:utXwt733s9FmiSM69o2zGOm0IT42FjthbB0oquIuPak=

谁能帮我用等效的 ruby​​ 代码来解决这个问题

【问题讨论】:

  • HMAC-SHA256 不是 SHA256。
  • 我真的希望这与密码散列完全无关,因为 SHA256 不足以胜任该任务。

标签: c# ruby cryptography sha256 sha


【解决方案1】:

下面的代码解决了这个问题

Digest::SHA256.base64digest(phrase)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-23
    • 2012-03-28
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 2010-11-22
    • 2014-01-14
    • 1970-01-01
    相关资源
    最近更新 更多