MySQL の暗号化と復号化の例

MySQL の暗号化と復号化の例

MySQL の暗号化と復号化の例

データの暗号化と復号化はセキュリティ分野で非常に重要です。プログラマーにとって、ユーザーのパスワードを暗号文でデータベースに保存することは、ユーザーのプライバシーを盗む侵入者にとって大きな意味を持ちます。
データの暗号化と復号化に使用できるフロントエンド暗号化アルゴリズムは多種多様です。ここでは、シンプルなデータベース レベルのデータ暗号化と復号化のソリューションをお勧めします。 MySQL データベースを例にとると、対応する暗号化関数 (AES_ENCRYPT()) と復号化関数 (AES_DECRYPT()) が組み込まれています。

テーブルを構築するときは、フィールドの種類に注意してください。次の図に示すように:

暗号化されたデータをテーブルに挿入する

上記の挿入ステートメントには、「ユーザー名」、「パスワード」、および「暗号化されたパスワード」の 3 つのフィールドがあります。 AES_ENCRYPT() 関数では、暗号化を支援するために「キー」が必要であり、復号化にも必要です (覚えておいてください)。

以下は、表内のデータのスクリーンショットです。

上記の挿入ステートメントには、「ユーザー名」、「パスワード」、および「暗号化されたパスワード」の 3 つのフィールドがあります。 AES_ENCRYPT() 関数では、暗号化を支援するために「キー」が必要であり、復号化にも必要です (覚えておいてください)。

以下は、表内のデータのスクリーンショットです。

テーブルから暗号化されたデータをクエリする

上記のクエリでは、AES_DECRYPT() 関数が使用されています。結果は次のとおりです。

上記のスクリーンショットでは、「pasword」フィールドと「decryptedpassword」フィールドの値が同じであることがわかります。つまり、ユーザー パスワードが復号化されているということです。

読んでいただきありがとうございます。お役に立てれば幸いです。このサイトをサポートしていただきありがとうございます。

以下もご興味があるかもしれません:
  • Java、JavaScript、Oracle、MySQL に実装された MD5 暗号化アルゴリズムの共有
  • mysql および mssql の MD5 暗号化ステートメント
  • PHP MySQL アプリケーションで XOR 暗号化アルゴリズムを使用する
  • MySQL 暗号化/圧縮関数
  • MySQL 双方向暗号化と復号化の使用方法の詳細な説明
  • MySQL テーブル全体の暗号化ソリューション keyring_file の詳細な説明

<<:  Windows はリモート デスクトップが長時間自動的に切断されるのを防ぎます

>>:  Webpack でよく使われる 12 個の Loader を共有する (要約)

推薦する

Javascript での JSBridge に関する予備的研究

目次JSBridgeの起源JSBridgeの双方向通信原理JSはネイティブを呼び出すネイティブコール...

UTF-8 ファイルの Unicode 署名 BOM (バイト オーダー マーク) の問題

最近、UTF8 エンコードの中国語 Zen Cart Web サイトをデバッグしているときに奇妙な現...

Apache ab を使用して HTTP パフォーマンス テストを実行する

MacにはApache環境が付属していますターミナルを開き、sudo apachectl -v と入...

MySQL の繰り返し読み取りレベルでファントム読み取りを解決できますか?

導入データベース理論についてさらに学んでいくうちに、さまざまな分離レベルによって起こり得る問題につい...

Linuxシステムはルートアカウントのリモートログインコマンドを禁止しています

ps: Linux システムで root アカウントのリモート ログインを無効にする方法は次のとおり...

Mysql は、デッドロック問題を解決するために kill コマンドを使用します (実行中の特定の SQL ステートメントを強制終了します)。

MySQL を使用して特定のステートメントを実行すると、データ量が多いためにデッドロックが発生し、...

VMwareを使用したPermeateレンジシステムのインストール手順の詳細説明

1. 背景私たちは時々社内研修を行っており、実験環境をよく利用しています。最初はdockerコンテナ...

JavaScript でのカスタム スワイパー コンポーネントの詳細な説明

目次エフェクト表示コンポーネント設定ステップ1ステップ2ステップ3コンポーネントの使用ステップ1ステ...

3つの簡単な例を使ってハイパーリンクの下線を削除する方法

ハイパーリンクの下線を削除するには、スタイルシート CSS を使用する必要があります。当面は CSS...

MySQL の null (IFNULL、COALESCE、NULLIF) に関する知識ポイントのまとめ

この記事では、MySQL の null (IFNULL、COALESCE、NULLIF) に関連する...

MySQL スレーブ ライブラリ Seconds_Behind_Master 遅延の概要

目次MySQL スレーブ ライブラリ Seconds_Behind_Master 遅延の概要1. 遅...

Windows での mysql-5.7.28 のダウンロード、インストール、および構成に関する詳細なグラフィックとテキストのチュートリアル

最近MySQLデータベースのバージョンを変更する必要があり、それを記録するために記事を書きます1. ...

Nginx+ModSecurity セキュリティモジュールの導入

目次1. ダウンロード2. 展開1.Nginxのデプロイメント2. ModSecurityの展開3....

さまざまな MySQL テーブルソートルールのエラーの分析

MySQL が複数のテーブルを結合するときに、次のエラーが報告されます: [Err]1267 – 操...

Baidu 入力メソッドが API を公開、自由に移植して使用できると主張

百度入力方式の担当者は、百度入力方式のオープンAPIの最大の利点は操作が便利であることであり、プラッ...