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 コーディングアルゴリズム学習ノート

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

ブログ    

推薦する

Tongji と Alibaba は CVPR 2022 最優秀学生論文賞のためにどのような研究を行いましたか?これは、

この記事では、CVPR 2022 最優秀学生論文賞を受賞した私たちの研究「EPro-PnP: 単眼物...

Huawei のフルシナリオ AI コンピューティング フレームワーク MindSpore がオープン ソースになりました。

Huawei の Mindspore AI コンピューティング フレームワークの公式オープン ソー...

データのクリーニングと前処理の完全ガイド

データの前処理は、機械学習モデルを構築する際の最初の (そしておそらく最も重要な) ステップであり、...

...

ChatSQL: ChatGPT を有効にしてプレーンテキストで SQL クエリを作成できるようにする

翻訳者 |ブガッティレビュー | Chonglou ChatGPTは2020年6月にリリースされ、 ...

基本的なプログラミングアルゴリズムを簡単にマスターする(パート3)

[[121972]]基本的なプログラミングアルゴリズム(I)基本的なプログラミングアルゴリズム(I...

複数の都市が共同で人工知能コンピューティングネットワークを点灯し、人工知能産業の発展を促進する

Huawei Connect 2021では、中国科学技術情報研究所(CITI)、AITISA(新世代...

ナレッジグラフを使用して RAG 機能を改善し、大規模モデルの幻覚を軽減する

幻覚は、大規模言語モデル (LLM) を使用するときによく発生する問題です。 LLM は流暢で一貫性...

MITとGoogle BrainはAIを使って「現代のロゼッタストーン」として知られる失われた古代の文書を解読する

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

ロボットシェフはトマト入りスクランブルエッグ9品を試食した後、味覚マップを描いた。

5月7日のZhidongxiによると、英国ケンブリッジ大学の研究者らは最近、シェフの調理過程を模倣...

...

GitHub のホット プロジェクト: 実稼働レベルのディープラーニング プロジェクトを構築するには?

ディープラーニング モデルを本番環境に導入することは、優れたパフォーマンスのモデルをトレーニングする...

ロボットが密かに子供を産んだ?科学者たちも私も衝撃を受けました。

[[438325]]最近このニュースを見たことがあるだろうか。 「ロボットが赤ちゃんを産みました。...