C# 从C到MySQL CakePhp用户的身份验证

C# 从C到MySQL CakePhp用户的身份验证,c#,cakephp,C#,Cakephp,我目前正在将一个CakePhp应用程序迁移到ASP.NET。在这一点上阻碍我的一件事是,我无法获得正确的哈希方法来获得正确的密码,以便用户能够从ASP.NET应用程序登录 我在config/core.php文件中设置了salt值 我在谷歌上搜索,试图确定在哪里可以找到使用的哈希算法,但没有找到正确的查询,或者没有结果 这里是我到目前为止对密码进行散列的C方法 public static string ToHash(this string password, string salt) { if

我目前正在将一个CakePhp应用程序迁移到ASP.NET。在这一点上阻碍我的一件事是,我无法获得正确的哈希方法来获得正确的密码,以便用户能够从ASP.NET应用程序登录

我在config/core.php文件中设置了salt值

我在谷歌上搜索,试图确定在哪里可以找到使用的哈希算法,但没有找到正确的查询,或者没有结果

这里是我到目前为止对密码进行散列的C方法

public static string ToHash(this string password, string salt)
{
  if (string.IsNullOrEmpty(password))
    return "";

  var provider = new SHA1CryptoServiceProvider();
  var encoding = new UnicodeEncoding();
  var bytes = provider.ComputeHash(encoding.GetBytes(salt + password));
  return Encoding.UTF8.GetString(bytes);
}
我尝试将salt放在密码之前或之后,目前根本不匹配,下面是来自cakephp mysql数据库的哈希密码:

C7FB60EF77DBE3D1681A68E6741E3A23CC1F41D

这是我从我的方法中得到的

��3[v���1.�:�ѐ��

不确定在何处/如何解决此问题。如有任何帮助或提示,将不胜感激


谢谢

我现在没有蛋糕来源,但是你应该可以很容易地在来源中查找蛋糕的哈希和盐析方法


上面的数据差异看起来像是Cake将哈希字节转换成一个字符串,哈希字节以十六进制表示。不管哈希方法有什么不同,在比较它们之前,您都必须将C哈希的结果转换成这样的字符串,或者换一种方式,解析Cake的十六进制字符串并用它构建一个字节数组。

D我现在没有蛋糕的来源,但是你应该可以很容易地在来源中查找蛋糕的哈希和盐析方法

上述数据差异看起来像是Cake将哈希字节转换成一个字符串,哈希字节以十六进制表示。不管哈希方法有什么不同,在比较它们之前,您都必须将C哈希的结果转换成这样一个字符串,或者换一种方式,解析Cake的十六进制字符串并用它构建一个字节数组。

I拥有它

至少它适用于我的配置:

从Core.php中查找salt在文件中搜索Security.salt。然后,使用与以下问题非常类似的代码:

string input = textBox1.Text;
input = "your salt should be here" + input;
var provider = new SHA1CryptoServiceProvider();
var encoding = new UTF8Encoding();
var bytes = provider.ComputeHash(encoding.GetBytes(input));
sha1result.Text = Bin2Hex(bytes);
Bin2Hex的助手也在这里:

public static string Bin2Hex(byte[] ba)
{
    string hex = BitConverter.ToString(ba);
    return hex.Replace("-", "");
}
找到它并不容易,我在互联网上搜索了一些,没有结果!最后求助于资源挖掘。

我找到了

至少它适用于我的配置:

从Core.php中查找salt在文件中搜索Security.salt。然后,使用与以下问题非常类似的代码:

string input = textBox1.Text;
input = "your salt should be here" + input;
var provider = new SHA1CryptoServiceProvider();
var encoding = new UTF8Encoding();
var bytes = provider.ComputeHash(encoding.GetBytes(input));
sha1result.Text = Bin2Hex(bytes);
Bin2Hex的助手也在这里:

public static string Bin2Hex(byte[] ba)
{
    string hex = BitConverter.ToString(ba);
    return hex.Replace("-", "");
}

找到它并不容易,我在互联网上搜索了一些没有结果!最后求助于源代码挖掘。

在这一成功之后,我们更进一步——允许来自cake的经过身份验证的用户自动识别并登录到另一方asp.net。如果有人愿意问一个问题,我将分享这个消息:成功之后ss,我们更进一步-允许来自cake的经过身份验证的用户自动识别并登录到另一方-asp.net。如果有人想问一个问题,我将与您分享: