ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript で文字列からハッシュを作成するにはどうすればよいですか?

JavaScript で文字列からハッシュを作成するにはどうすればよいですか?

WBOY
WBOY転載
2023-08-25 15:49:041401ブラウズ

如何在 JavaScript 中从字符串创建哈希?

始める前に、JavaScript のハッシュについて学びましょう。ハッシュ値も文字列ですが、特定のアルゴリズムを使用して暗号化されます。通常、セキュリティ目的でハッシュを使用します。

たとえば、Google はユーザーの電子メールとパスワードをデータベースに保存します。現在、Google の従業員は開発目的でデータベースにアクセスできるようになりました。しかし、データベースからユーザーの電子メールとパスワードを取得できるでしょうか?いいえ、パスワードはハッシュされた形式で保存されており、パスワードを復号化するには、パスワード文字列からハッシュを作成するときに使用したキーが従業員に必要になるためです。

このようにして、データをハッシュ形式に変換できます。元のデータと新しいデータを比較する必要がある場合は、同じアルゴリズムを使用して新しいデータをハッシュ値に変換し、元のデータのハッシュ値と比較できます。 JavaScript で文字列からハッシュを作成する方法を学びます。

文字列をハッシュに変換するアルゴリズムを作成する

このメソッドでは、文字列からハッシュ値を生成するカスタム関数を作成します。各文字列文字の ASCII 値を取得し、乗算、加算、減算、OR などの演算を実行し、そこからハッシュを生成します。

###文法###

ユーザーは、次の構文に従って文字列からハッシュを生成できます。

リーリー

上記の構文では、hashstring には str 文字列の最終ハッシュ値が含まれます。

###アルゴリズム###

ステップ 1
    - hashString 変数をゼロに初期化します。
  • ステップ 2
  • - for-of ループを使用して文字列を反復処理します。
  • ステップ 3
  • - for-of ループ内で、各文字の ASCII 値を取得します。
  • ステップ 4
  • - その後、ハッシュ文字列を 5 だけ左にシフトし、31 を掛けて、そこからハッシュ文字列を減算します。
  • ステップ 5
  • - 文字列文字の ASCII 値を hashString 変数に追加します。
  • ステップ 6
  • - hashString 変数値とそれ自体に対して OR 演算を実行します。
  • ステップ 7
  • - for ループのすべての反復が完了すると、32 ビット整数の最終ハッシュ値を取得します。
  • 例 1

  • 以下の例では、さまざまな文字列を使用してハッシュ値を生成します。文字列をパラメータとして受け取り、それをハッシュ値に変換する上記のアルゴリズムを実装する ConvertToHash() 関数を作成しました。

ユーザーは、出力内のハッシュ値を表す 32 ビット整数値を確認できます。さらに、同じ文字列に対して常に同じハッシュ値が生成されることがわかります。

リーリー

例 2

以下の例では、文字列をハッシュに変換するために上記のアルゴリズムを実装しますが、for ループの代わりにreduce メソッドを使用します。文字列を文字配列に変換するには、split() メソッドを使用します。

その後、reduce() メソッドを使用して、最初のパラメータとしてコールバック関数を渡し、2 番目のパラメータとしてハッシュ変数の初期値を示す 0 を渡しました。コールバック関数では、各文字の ASCII 値を使用してハッシュ値を生成します。

リーリー

crypto-js NPM パッケージの使用

Crpyo-js は、文字列からハッシュを生成するためのさまざまなメソッドが含まれる Npm パッケージです。メッセージを復号化するためのアルゴリズムもいくつか含まれています。

ユーザーは次のコマンドを使用して、crypto-js npm パッケージをノード プロジェクトにインストールする必要があります。

リーリー ###文法###

ユーザーは、次の構文に従って暗号化と復号化のために crypto-js パッケージをインポートして使用できます。

リーリー

上記の構文では、cryptoJS パッケージの AES モジュールの encrypt() メソッドを使用します。

パラメータ

String

- 文字列形式のメッセージまたはデータであり、ハッシュの生成に使用されます。

  • 秘密キーは、ハッシュを生成するときに アルゴリズムが使用する秘密キーです。ハッシュは複雑であるほど、より安全な暗号化テキストが生成されます。

  • 例 3 以下の例では、NodeJs ファイルに crypto-js パッケージをインポートしました。その後、CryptoJs の AES モジュールにアクセスし、encrypt() メソッドを使用して文字列からハッシュを生成します。

  • ユーザーは、AES アルゴリズムを使用して生成されたハッシュ値を出力で確認できます。
リーリー ###出力### リーリー

このチュートリアルでは、文字列またはデータからハッシュを生成する 2 つの方法を説明します。最初の方法は単純で、キーを使用せずにテキストを暗号化します。そのため、実際の開発では使用できません。

CryptoJs パッケージには、さまざまなアルゴリズム用のさまざまなモジュールが含まれています。暗号化キーを使用する任意のアルゴリズムの暗号化方式を使用できます。したがって、アルゴリズムは知っていても鍵が分からない場合でも、暗号文を解読することはできません。

以上がJavaScript で文字列からハッシュを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。