免責事項: 私は暗号化ではなく、Google を知っています。
crypt
ドキュメントから:
このモジュールは、変更された DES アルゴリズムに基づく一方向ハッシュ関数である crypt(3) ルーチンへのインターフェイスを実装します。詳細については、Unix の man ページを参照してください。考えられる用途には、Python スクリプトがユーザーから入力されたパスワードを受け入れることを許可すること、または辞書を使用して Unix パスワードをクラックしようとすることが含まれます。
をご覧いただけますmd5crypt.py
。または、crypt
Windowsの場合はGnuWin32の一部です。Unix の man ページの一部を次に示します。Windows インターフェースは似ているはずです。
CRYPT(3) Linux プログラマーズ マニュアル
CRYPT(3)
名前 crypt, crypt_r - パスワードとデータの暗号化
あらすじ
#define _XOPEN_SOURCE
#include <unistd.h>
char *crypt(const char *key, const char *salt);
char *crypt_r(const char *key, const char *salt,
struct crypt_data *data);
-lcrypt でリンクします。
説明
crypt() はパスワード暗号化関数です。これは、(とりわけ) キー検索のハードウェア実装の使用を思いとどまらせることを意図したバリエーションを持つデータ暗号化標準アルゴリズムに基づいています。
key は、ユーザーが入力したパスワードです。
salt は、セット [a–zA–Z0–9./] から選択された 2 文字の文字列です。この文字列は、4096 通りの方法のいずれかでアルゴリズムを混乱させるために使用されます。
キーの最初の 8 文字のそれぞれの下位 7 ビットを取得することにより、56 ビットのキーが取得されます。この 56 ビット キーは、一定の文字列 (通常はすべてゼロで構成される文字列) を繰り返し暗号化するために使用されます。戻り値は、一連の 13 個の印刷可能な ASCII 文字 (最初の 2 文字はソルト自体を表します) である、暗号化されたパスワードを指します。戻り値は、呼び出しごとに内容が上書きされる静的データを指します。
警告: キー スペースは 2**56 の 7.2e16 の可能な値で構成されます。超並列コンピュータを使用すると、この鍵空間の徹底的な検索が可能です。このキー スペースの、一般的に人間がパスワードに使用する部分を検索する、crack(1) などのソフトウェアが利用可能です。したがって、パスワードの選択では、少なくとも一般的な単語や名前を避ける必要があります。選択プロセス中にクラック可能なパスワードをチェックする passwd(1) プログラムの使用が推奨されます。
DES アルゴリズム自体にはいくつかの癖があり、パスワード認証以外では crypt() インターフェースを使用するのは非常に不適切です。暗号化プロジェクトに crypt() インターフェースを使用することを計画している場合は、そうしないでください。暗号化に関する優れた本と、広く利用可能な DES ライブラリの 1 つを入手してください。