是否有与Microsoft生成密码哈希的标准方法?

Pau*_*est 3 c# java passwords hash visual-c++

有没有使用Microsoft开发工具生成密码哈希的标准方法?或许也有最常见的方式.(我看过有MD5,STA1)

不幸的是,我没有服务器的源代码,但必须使用SOAP Web服务.必须是一些生成哈希码的算法.我需要使用Java或使用一些库来实现它.

这是我需要发送到服务器的SOAP请求的一部分.看看oldPasswordHash.

- <ChangePassword xmlns="urn:____________">
  <sessionGUID>{864da5f3-21b6-486a-8bd3-c507ae3d224e}</sessionGUID> 
  <oldPasswordHash>089ad55bd0a8f6d3c2e2bbf0e4e1475c7e984ef1</oldPasswordHash> 
  <newPasswordHash>f4a69973e7b0bf9d160f9f60e3c3acd2494beb0d</newPasswordHash> 
  </ChangePassword>
Run Code Online (Sandbox Code Playgroud)

Wim*_*nen 6

这些是未加密密码的SHA1哈希值.

f4a69973e7b0bf9d160f9f60e3c3acd2494beb0d是SHA1的哈希值Passw0rd!.

我能够使用彩虹表服务来反转其中一个哈希的事实表明,没有盐析的密码哈希是非常不安全的.

在C#中,您可以像这样重现实现:

public static string Hash(string value)
{
   var sha = new System.Security.Cryptography.SHA1CryptoServiceProvider();
   byte[] hash = sha.ComputeHash(Encoding.ASCII.GetBytes(value));
   return BytesToHex(hash).ToLower();
}

private static string BytesToHex(byte[] bytes)
{
   return String.Concat(Array.ConvertAll(bytes, x => x.ToString("X2")));
}
Run Code Online (Sandbox Code Playgroud)

对于java版本,请查看第一个google hit for"sha1 java".