【问题标题】:How to decrypt password in Meteor如何在 Meteor 中解密密码
【发布时间】:2017-05-05 21:29:53
【问题描述】:

可以解密 Meteor 应用程序生成的这种类型的密码。

我的想法是在 C# 中为我的应用程序使用相同的凭据(电子邮件和密码)

【问题讨论】:

  • 没有加密 - 它是使用 BCrypt 的哈希
  • C# 可以使用 bcrypt,所以这是在 C# 中复制逻辑的情况
  • 谢谢@Plutonix,

标签: c# mongodb meteor meteor-accounts


【解决方案1】:

这是一个 bcrypt 哈希吗?它取决于密钥的大小,因为 Blowfish 作为可变大小的密钥。如果是 32 位。当然,你可以用一些强大的计算能力和几个小时来完成它。它是一个 128 位密钥,在它完成暴力破解之前,你早就死了(我们所知道的宇宙也会死)。不过,Blowfish 确实存在弱密钥的小漏洞。我会重新考虑你的实施。

【讨论】:

    【解决方案2】:

    散列和加密密码的真正目的是使解密它们变得不切实际。

    但是,如果您使用相同的方案,您可以重用流星应用程序中的 bcrypt(hash(password)) 并在另一个应用程序中对其进行检查。

    【讨论】:

      【解决方案3】:

      正如其他答案中所述,您无法解密密码,但您可以很好地使用 Meteor 数据库在不同的系统中进行身份验证。

      这是怎么做的:

      在您的其他系统中,首先找到提供SHA256bcrypt 实现的库。

      然后获取用户输入的密码,并首先从中计算出 SHA256 摘要哈希。

      然后使用轮数 = 10 将此哈希字符串提供给 bcrypt(这是 Meteor 的默认值)。

      现在将 bcrypt 的结果与 Meteor 的 MongoDB 数据库中的 services.password.bcrypt 进行比较。如果它们匹配,则用户提供了正确的密码。

      作为参考,Meteor 实现is here。它非常简单,并且注释很好。

      【讨论】:

        【解决方案4】:

        我遇到了一个类似的用例,我正在编写一个 C# 应用程序,该应用程序将验证通过 Meteor.js 应用程序创建的用户。我开始工作的代码是这样的(使用 System.Security.Cryptography 和 BCrypt.Net-Next):

        string sha256_hash(string value) {
            StringBuilder stringBuilder = new StringBuilder();
        
            using (SHA256 hash = SHA256.Create()) {
                Encoding enc = Encoding.UTF8;
                Byte[] resultingHash = hash.ComputeHash(enc.GetBytes(value));
        
                foreach (Byte b in resultingHash) {
                    stringBuilder.Append(b.ToString("x2"));
                }
            }
        
            return stringBuilder.ToString();
        }
        
        // First compute SHA256 hash
        string sha256hash = sha256_hash("my_password");
        
        // Let BCrypt.Net rehash and check if it matches Meteor's hash
        if (BCrypt.Net.BCrypt.Verify(sha256hash, dbPassword) == true) {
            Console.WriteLine("Valid!");
        }
        

        【讨论】:

          猜你喜欢
          • 2012-02-03
          • 2020-05-20
          • 1970-01-01
          • 1970-01-01
          • 2023-03-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多