Hash umbraco在其成员资格提供程序中使用什么样的哈希

Hash umbraco在其成员资格提供程序中使用什么样的哈希,hash,umbraco,Hash,Umbraco,我需要将Umbraco的用户转移到另一个CMS,他们的所有密码都会被散列。我想防止用户重置密码,并希望在新的CMS中实现相同的哈希算法 Umbraco在其成员资格提供程序中使用什么散列类型 比如说 w477amllwjqealgpzkieilr8ta=“是“test”的哈希值” 我无法使用.net,将不得不在javascript中重新实现此哈希 更新后的答复: //not sure why I can't use cryptojs's utf16LE function //words = Cry

我需要将Umbraco的用户转移到另一个CMS,他们的所有密码都会被散列。我想防止用户重置密码,并希望在新的CMS中实现相同的哈希算法

Umbraco在其成员资格提供程序中使用什么散列类型

比如说

w477amllwjqealgpzkieilr8ta=“是“test”的哈希值”

我无法使用.net,将不得不在javascript中重新实现此哈希

更新后的答复:

//not sure why I can't use cryptojs's utf16LE function
//words = CryptoJS.enc.Utf16LE.parse("test");
//utf16 = CryptoJS.enc.Utf16LE.stringify("test");

function str2rstr_utf16le(input) {
  var output = [],
      i = 0,
      l = input.length;

  for (; l > i; ++i) {
    output[i] = String.fromCharCode(
      input.charCodeAt(i)        & 0xFF,
      (input.charCodeAt(i) >>> 8) & 0xFF
    );
  }

  return output.join('');
}

var pwd = str2rstr_utf16le("test");
var hash = CryptoJS.HmacSHA1(pwd, pwd);

var encodedPassword = CryptoJS.enc.Base64.stringify(hash);
alert(encodedPassword);

Umbraco正在使用ASP.NET成员资格提供程序模型,这意味着ASP.NET提供的所有现成抽象类都能够访问Umbraco成员。
查看有关ASP.NET成员资格提供程序的详细信息。

更具体地说,它用于散列密码。应该作为一个简单的实现示例

不过,正如Martijn所指出的,Umbraco使用标准提供商模型。因此,您可以通过抽象类轻松访问它,创建自己的成员资格提供程序实现。

如果您想在C#中实现, 您可以使用以下哈希方法:

public static string GetHash(string password) { 
    byte[] passwordBytes = Encoding.Unicode.GetBytes(password);
    using (var hash = new HMACSHA1(passwordBytes)){ 
       return Convert.ToBase64String(hash.ComputeHash(passwordBytes)); 
    }
}

根据asp.net成员资格提供程序文档,默认情况下它是一个带有base64编码的sha1哈希,但这不会产生上述结果。有一个默认的salt值吗?不幸的是,我必须创建一个javascript实现,所以我不能扩展或使用.net类。我尝试了一个带有空白键的默认hmacsha1,但似乎没有重现相同的结果。啊哈,很好的旧javascript实现。我猜..手机?:)不管怎样,我知道我在过去的某个时候遇到过这个问题。问题是您正在使用的库所使用的编码(我假设是crypto.js)。这条线索应该很有启发性。你真的救了我一天,谢谢分享。