【问题标题】:Create the same hash in PHP as OracleMembershipProvider在 PHP 中创建与 OracleMembershipProvider 相同的哈希
【发布时间】:2013-12-13 15:49:23
【问题描述】:

我想比较使用 OracleMembershipProvider 方法创建的哈希:

CreateUser(username, password, e-mail) 

在 php.ini 中手动创建哈希。 CreateUser 方法将密码哈希和盐保存在数据库中。 我必须补充一点,每个密码的盐值都不同。

我不知道 OracleMembershipProvider 用于哈希生成的模式。 因为我的 .NET 应用程序是 4.5 框架并且未指定哈希算法类型,所以我想 使用 sha-1。

我只是想获得哈希生成的模式,以便我可以比较它并使用相同的数据库进行 PHP 应用程序登录。

提前谢谢你。

【问题讨论】:

    标签: c# php .net oracle hash


    【解决方案1】:

    我终于找到了答案:

    使用 OracleMembershipProvider 生成密码与在 SQLMembershipProvider 中相同。 所以这个问题的答案和这里一样: What is default hash algorithm that ASP.NET membership uses?

    这个功能对我来说没问题。

    public string EncodePassword(string pass, string salt)
            {
                byte[] bytes = Encoding.Unicode.GetBytes(pass);
                //byte[] src = Encoding.Unicode.GetBytes(salt); Corrected 5/15/2013
                byte[] src = Convert.FromBase64String(salt);
                byte[] dst = new byte[src.Length + bytes.Length];
                Buffer.BlockCopy(src, 0, dst, 0, src.Length);
                Buffer.BlockCopy(bytes, 0, dst, src.Length, bytes.Length);
                HashAlgorithm algorithm = HashAlgorithm.Create("SHA1");
                byte[] inArray = algorithm.ComputeHash(dst);
                return Convert.ToBase64String(inArray);
            }
    

    编辑: 我所要做的就是将此代码转换为 PHP。 我发现了这个转换:Trying to port C# function to PHP5

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多