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 を共有する (要約)

推薦する

Vueは動的コンポーネントを使用してTAB切り替え効果を実現します

目次問題の説明Vueの動的コンポーネントとはアプリケーションシナリオの説明実装手順ステップ 1 (新...

CSS でフローティングにより親要素の高さが崩れる問題を解決するいくつかの方法

1. ドキュメントフローとフローティング1. ドキュメントフローとは何ですか? HTML では、ドキ...

Linux での screen コマンドの使用方法の詳細な説明

GUNスクリーン:公式サイト: http://www.gnu.org/software/screen...

MySQL での一時テーブルの使用例

ここ2日間ちょっと忙しくて、公式アカウントも数日更新が止まってしまいました。その結果、何人かの読者か...

CentOS 7 に Percona Server+MySQL をインストールする

1. 環境の説明(1) CentOS-7-x86_64、カーネルバージョン uname -r は、 ...

ubuntu16.04 で nginx を完全にアンインストールするための関連コマンド

nginx の概要nginx は、無料のオープンソースの高性能 HTTP サーバーおよびリバース プ...

Linux サーバーが処理できる接続数をご存知ですか?

序文まず、TCP 接続を識別する方法を見てみましょう。システムは、(src_ip、src_port、...

vuexサードパーティパッケージを使用してデータの永続性を実装する方法

目的: vuex で管理されている状態データを同時にローカルに保存できるようにします。独自のストレー...

VUE ユニアプリライフサイクルに関する簡単な説明

目次1. アプリケーションライフサイクル2. ページのライフサイクルコンポーネントライフサイクル要約...

CSS クラスと ID の一般的な命名規則

ページの公開名: #wrapper - ページの外側の端が全体のレイアウト幅を制御します#conta...

Vueプロジェクトでページジャンプを実装する方法

目次1. vue-cli デフォルト プロジェクトを作成する (babel のみを含む) 2. 作成...

WMLとは何ですか?

WML (ワイヤレス マークアップ言語)。これは HTML から派生したマークアップ言語ですが、W...

スクラッチ宝くじの例を実現する JavaScript キャンバス

この記事では、スクラッチ効果を実現するためのJavaScriptキャンバスの具体的なコードを参考まで...

Nginx ソースコード調査における nginx 電流制限モジュールの詳細な説明

目次1. 電流制限アルゴリズム2. nginxの基礎知識4. 実戦要約する高並行性システムには、キャ...

HTML5+CSS3コーディング標準

黄金律プロジェクトに何人の人が取り組んでいるかに関係なく、すべてのコード行が同じ人によって書かれたよ...