0

JavaScript 用のシンプルで軽量なハッシュ アルゴリズムを探し回っています。Stack Overflow hereでこの数値ベースの回答を見つけました。

残念ながら、これは数値ベースであるため使用できず、このハッシュをコード内の別の場所で一意のインデックスとして使用する必要があります。多くの場合、この関数は負の数を返しますが、それは大したことではありません ('hello world!'.hashCode()上記のリンクのスニペットを試して、私の言いたいことを確認してください)。

私は JS に md5 ハッシュ ライブラリを使用したくなりましたが、それらは単に私の目的にはかさばり、暗号化ライブラリ ( thisなど) はやり過ぎです。

とにかく、このハッシュ内の情報は機密ではなく、復号化されているかどうかは必ずしも問題ではないことに注意してください. この関数の目的は、渡す元のデータへの短縮された参照として機能する固定長の出力データを単純に生成することです。

ヘルプ、ヒント、コメントは大歓迎です:)

4

2 に答える 2

0

これは数値ベースであるため使用できず、このハッシュをコード内の別の場所で一意のインデックスとして使用する必要があります。

ハッシュ関数は通常、数値に基づいており、完全ではない (一意のキーを生成する) ことはめったにありません。別のものが必要だと思います:

function GuidGen()
{
    this.items = {};
    this.size = 0;
}

GuidGen.prototype.get = function(str)
{
    if (!(str in this.items))
    {
        this.items[str] = this.size++;
    }
    return this.items[str];
}

// usage:
id = new GuidGen();
id.get("hello world");  // 0
id.get("spam");         // 1
id.get("eggs");         // 2
id.get("hello world");  // 0
于 2013-07-01T10:13:15.090 に答える