[解決済み] JavaScriptのためのシンプルな(安全でない)ハッシュ関数?[重複している]。
2022-03-14 17:35:47
質問
<余談
この質問には、すでにここで回答があります
:
クローズド
9年前
.
重複の可能性あり。
Javascript/jQueryで文字列からHashを生成する
どなたか、(ブラウザ互換の)JavaScriptで書かれた簡単な(つまり、数百行ではなく数十行のコード)ハッシュ関数を提案していただけませんか? 理想的には、入力として文字列を渡されたとき、MD5やSHA1などの典型的な出力である32文字の16進文字列に似たものを生成するものが欲しいのです。 暗号的に安全である必要はなく、衝突に適度に耐性があればよい。 (私の最初の使用例はURLですが、おそらく将来的には他の文字列にも使用したいと思います)。
どのように解決するの?
自分で検証したわけではありませんが、こちらをご覧ください。 Java の String.hashCode() メソッドを JavaScript で実装したものです。 . それなりに短いようです。
<ブロッククオート
このプロトタイプを使用すると、単純に
.hashCode()
を任意の文字列に対して、例えば
"some string".hashCode()
というハッシュコードを受け取り、1395333309のような数値のハッシュコード(より具体的には、Javaでの等価値)を受け取ります。
String.prototype.hashCode = function() {
var hash = 0;
for (var i = 0; i < this.length; i++) {
var char = this.charCodeAt(i);
hash = ((hash<<5)-hash)+char;
hash = hash & hash; // Convert to 32bit integer
}
return hash;
}
関連
-
jsを使った簡単な照明スイッチのコード
-
Vueのクラススタイルの使い方の詳細
-
JavaScriptのgetElementById()メソッド入門
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] ループ内のJavaScriptクロージャ - シンプルな実用例
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み】PHPパスワードのハッシュとソルトの安全性について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Vueの要素ツリーコントロールに破線を追加する説明
-
jsを使った簡単な照明スイッチのコード
-
JavaScriptの配列共通メソッド解説
-
vueディレクティブv-bindの使用と注意点
-
Vueのクラススタイルの使い方の詳細
-
Vueのフォームイベントのデータバインディングの説明
-
[解決済み】JavaScriptの配列でforEachが関数でない不具合
-
[解決済み】「X-Frame-Options」を「SAMEORIGIN」に設定したため、フレームでの表示を拒否された。
-
[解決済み】ExpressJS : res.redirect()が期待通りに動かない?
-
[解決済み] Javascriptで文字列からHashを生成する