rand()を使用しない暗号化パスワードの擬似ランダム生成

テーブル



どういうわけか、自分のニーズに合った安全なパスワードジェネレーターを独自に実装したかったのです。 このスクリプトは、mcryptライブラリを使用して彼の小さなPHPプロジェクト用に作成されました。 アクションの原則自体は私にとって興味深いものであるため、このコードを共有することにしました。







実装のパフォーマンス特性:



-文字範囲:Aa — Zzおよび0-9

-パスワードの最大長:300文字

-rand()は使用されません

-パスワードは、ブロック結合モード(CBCモード)の対称ブロックアルゴリズムSerpent-256を介して生成されます。

秘密を変更する初期ベクトル、秘密鍵、ランダムな文字の長い秘密ブロック

-SHA256を使用するベクトルを変更するには

-3つのファイル:generator.php、counter.txt、iv.txt

-美のためのカウンターがあります



2つの機能:



make_password(int length); // , 22 = 128 bit

print_password(int length); //








擬似コード: base64(蛇(キー、iv、プレーンテキスト、cbc))



これが、プロセスの最も重要な部分であるパスワードの実行方法です。

(初期ベクトルと他のすべてはどのように変化しますか

PHPコードでご覧ください。

コード内の興味深い場所にコメントがあります。)



完全なジェネレーターコード、htmlタグを含む:



http://www.copypastecode.com/8660/



generator.phpは、パスワードをすばやくコピーするためのこのようなテーブルを作成します。



テーブル





これはすべて、暗号化されたSSLチャネルを介してサーバー上で機能するため、パスワードは自分だけに表示されます。

私はあなたにリンクを差し上げません-私は貪欲な妄想者です、まだ私をハックしてトラフィックを奪います。



このコードを使用する場合は、すべての値(キー、ベクトル、テキスト、およびカウンター)を変更します。 私のベクトルとカウンターはファイルに保存されます。データベース(MySQLなど)または他の場所に自分のベクトルとカウンターを保存できます。 ローカルマシンまたは安全なチャネルを介してパスワードを生成することをお勧めします。 私の意見では、単純なhttpを介してこのコードをパブリックドメインに置くことは非常に愚かです。



このトピックは、招待を受けるという貪欲で利己的な目的のために書かれました。 招待して、別の4スレッド、Chesna-Chesnaを書きます。



招待してくれたクールなlyxsus hubramanに感謝します。



All Articles