Habré とインターネットの両方で、パスワードのトピックに関する一連の記事が書かれています。驚くべきことに、これまでのところ、誰も私が使用している別の方法を説明していません。
すぐに、私はスマートフォンを使用していないため、プッシュボタン式電話のすべての種類のパスワード マネジャーを使用できないことに注意してください。
最初は、ほとんどのユーザーと同じように、すべてのサイトに 1 ~ 2 個のパスワードを挿入していました。この方法の欠点について書いても意味がありません。多くの欠点があります。時間が経つにつれて、このアプローチを変更する必要があることが明らかになりました。サードパーティのサイトで複雑なパスワードのジェネレーターを使用するのは不便です。なぜなら、生成後にこのパスワードは忘れられ、セッションの有効期限が切れた後に変更する必要があるからです。一方で、これは良いことです。パスワードを常に変更する必要があり、パスワードを見つけるのが難しくなるからです。ただ、1日でセッションが終わってしまうサイトもあり、変更するのが面倒です。
パスワードが私たちの条件に適合し、サイトの条件も満たすためには、パスワードにどのような品質が必要ですか?
サイトごとに固有であること
大文字と小文字、数字、特殊文字の異なる文字のセットを用意する
変更が N か月に 1 回発生するサイトのポリシーに準拠できること
最初に頭に浮かんだのは、サイト ハッシュとカスタム ルールを使用することでした。md5 ジェネレーターはオンラインとモバイル アプリケーションの両方で利用できるため、md5 をベースとして使用しました。
次に、すべてのサイトで使用されるパスワード生成の基本ルールを作成します。
ルールの本質は次のとおりです。パスワードを生成するには、login@site.com 文字列を使用します。次に、パスワードの複雑さに応じて、最初/最後の N 文字を取得します。ほとんどのサイトでは、10 文字のパスワードで十分です。数字と文字の複雑なセットがすでに含まれている文字列が判明しました。結果として得られるパスワードは、通常のパスワードよりもはるかに複雑ですが、それでも推測することは可能です。さらに、ほとんどのサイトでは、パスワードに特殊文字と大文字と小文字を区別する文字を含める必要があります。これを行うために、すべてのパスワードに共通のルールを考え出し、導入します。
, 2, 1 ( 10, 9 + 2 1, 9 + 1 0). , , . , , .
, :
noroots@habr.com = c05184b3af6965b29f15571556a4cccd
10 , c05184b3af
2, 1 c25284b3af
, , C25284b3af#
C25284b3af#, .
, , , .
次に、例外についてです。場合によっては、ハッシュに数字のみ、または 1 文字だけが含まれ、大文字と小文字が異なる文字の要件を満たすことができない場合があります。これを行うには、単純に文字列の長さを 10 から 15 に増やすか、N 文字ではなく、N 文字よりも長く、少なくとも 2 文字を含む文字列を使用する、より柔軟なルールを使用することができます。また、一部のサイトでは定期的なパスワードの変更が必要です (銀行サイトや Google など)。解決策は簡単です - 年と四半期 (変更の頻度に応じて、月、半年) を login@site.com 行に追加します。パスワードとそれをメモリに復元する機能。