Javascript Hash Prototype到C#

时间:2018-05-12 08:31:28

标签: javascript c#

我有一个javascript string.prototype,它为字符串创建一个哈希值。 JS:

    String.prototype.hashCode = function () {
        var hash = 5381, i = this.length
        while (i)
            hash = (hash * 33) ^ this.charCodeAt(--i)
        return hash >>> 0;
    }

我需要在C#中为另一个使用相同数据库的应用程序重新创建此哈希。以下是我到目前为止......

    public string hashCode(string password)
    {
        var hash = 5381;
        int i;
        string newHash = "";
        int index = password.Length;
        for (i = 0; i > index; i++)
            hash = (hash * 33) ^ (char)password[--index];
        hash = (int)((uint)index >> 0);
        newHash += hash;
        return newHash;
    }

如果有人能指出我正确的方向,我们将不胜感激!

谢谢!

1 个答案:

答案 0 :(得分:1)

代码的错误很少。

public string hashCode(string password)
{
     int hash = 5381;
     int i = password.Length;

     while(i > 0)
          hash = (hash * 33) ^ (char)password[--i];
     hash = (int)((uint)i >> 0);
     return hash.ToString();
 }