UCenter パスワードアルゴリズムのルールと生成方法

UCenter パスワードアルゴリズムのルールと生成方法

Discuz、UCHome、Supesite を含む Kangsheng の一連の製品は、同じユーザー システムである UCenter に統合されています。ユーザーのログイン パスワードも UCenter に保存されます。他のシステムとの統合や UCenter システムへのデータのエクスポートでは、通常、パスワード生成の問題が発生します。ここでは、UCenter のユーザー パスワード アルゴリズム ルールと生成方法について説明します。

パスワードは通常、MD5 を使用してハッシュ化され、データベースに保存されます。ハッカーが HASH 値を入手した場合、辞書を使用してそれを解読できます。辞書データベースが十分に大きく、辞書が人々の設定習慣と一致している場合、一般的なパスワードは簡単に解読できます。そのため、UCenter はソルトを使用して、このブルート フォース クラッキングを防止します。ソルトは、パスワードに接続され、一方向関数で操作されるランダムな文字列です。ソルト値に対する一方向関数操作の結果は、データベースに保存されます。可能なソルト値の数が十分に多い場合、ハッカーはソルトとユーザーパスワードを組み合わせたハッシュ値をそれほど多くデータベースに保存できないため、一般的に使用されるパスワードに対する辞書攻撃が実際に排除されます。

UCenter の創設者パスワードはファイルに保持されます。uc の下の /data/config.inc.php ファイルを開きます。その中の UC_FOUNDERPW はパスワードを保持し、UC_FOUNDERSALT は SALT 値を保持します。創設者パスワードを作成するためのルールは、UC_FOUNDERPW=md5 (md5 (PASSWORD).UC_FOUNDERSALT) です。これは、最初にパスワードを MD5 し、次に salt を追加し、最後にもう一度 MD5 することを意味します。生成された HASH 値は config.inc.php ファイルに保持されます。したがって、UC_FOUNDERPW の値を変更することで、UCenter の創設者パスワードを変更できます。

UCenter ユーザー情報は、uc_members テーブルに保存されます。このテーブルでは、各ユーザーには異なるランダム ソルト フィールドがあります。テーブル内のパスワード フィールドは、計算されたパスワードです。パスワードの計算ルールは、$password=md5(md5($password).$salt) です。つまり、ユーザーのパスワードを MD5 し、ソルトを追加してから、再度 MD5 し、パスワード フィールドに保持します。

したがって、異なるシステム間でデータを変換する必要がある場合は、この原則に基づいて他のシステムのユーザー名とパスワードを計算し、それらを UCenter の uc_members テーブルにインポートして、ユーザーの移行を実現できます。たとえば、元のシステムがパスワードを保持するために md5 (password) などのアルゴリズムを使用している場合、プログラムはランダムにソルトを生成し、2 つの合計の md5 を計算できます。このようにして、UCenter でユーザーのパスワードの HASH 値を簡単に計算できるため、シームレスなユーザー移行が実現します。

ただし、元のシステムが md5 (パスワード + ソルト) を使用してパスワードを保持している場合、UCenter へのスムーズなパスワード移行を実現することはできません。移行できたとしても、UCenter パスワードに手動でソルトを追加することによってのみ使用できます。したがって、システムユーザーパスワードを設計するときは、パスワードの保持に md5 (md5 (パスワード) + ソルト) を使用するようにしてください。これにより、UCenter とのインターフェイスが容易になり、セキュリティが確保されます。通常、英語のユーザー名の場合、自作システムではユーザー名をソルトとして使用するのが簡単な方法です。

【編集者のおすすめ】

  1. ユーザーをサイトに留める: UCenter Home の新バージョンで詳細が向上
  2. フルディスク暗号化 (FDE) ソフトウェアのパフォーマンスが明らかに
  3. 暗号学:理論から実践へ

<<:  VB.NET コーディングアルゴリズム学習ノート

>>:  「アルゴリズム」の混乱にどう向き合うか?

ブログ    
ブログ    

推薦する

コンテンツ管理と AI – ContentOps の未来

人工知能 (AI) は、退屈な日常的な作業を一つずつこなして世界を席巻しています。 AI を使用して...

DeepMind: 畳み込みネットワークは ViT ほど優れていないと誰が言ったのですか?

ディープラーニングの初期の成功は、畳み込みニューラル ネットワーク (ConvNet) の開発による...

ロボットが「自己認識」を持つためには、まず自分の声を認識する必要があるのでしょうか?

人工知能の発展の波の中で、人間はロボットが自己認識を持つことに対して非常に警戒心を抱いています。結局...

...

...

画像をデジタル化して特徴を抽出するための、事前トレーニング済みのディープラーニングモデル6つ

[51CTO.com クイック翻訳] ユビキタスセンサーは毎日大量の画像を収集しており、人工知能技術...

...

パフォーマンスが20%向上しました! USTCの「状態シーケンス周波数領域予測」手法:学習サンプル効率の最大化の特徴

強化学習 (RL) アルゴリズムのトレーニング プロセスでは、サポートとして環境との相互作用のサンプ...

試験形式がAIベースになったとき、「AI+教育」の関係をどうバランスさせるのか?

[[237498]]画像出典: Visual China私のクラスメイトの劉一木は留学の準備をして...

...

IoTとAI:輸送管理の変革

私たちが今生きている時代は、これまでで最も技術的に進歩した時代です。これらの新しいテクノロジーの登場...

アリの採餌とインターネットアルゴリズム

[[93484]]人間とアリの違いは何でしょうか? Ant にはインターネットがありません。創造的な...

TCP/IPトランスポート層におけるTCP BBRアルゴリズムについての簡単な説明

0x00. はじめにこれは、TCP/IP プロトコル スタック シリーズの 3 番目の記事です。前回...

...