Python
 Computer >> コンピューター >  >> プログラミング >> Python

UNIXパスワードをチェックするPython関数


UNIXパスワードを確認するには、cryptモジュールを使用する必要があります。 crypt(3)ルーチンがあります。これは基本的に、修正されたDESアルゴリズムに基づく一方向ハッシュ関数です。

cryptモジュールを使用するには、を使用してインポートする必要があります。

import crypt

メソッドcrypt.crypt(word、salt)

このメソッドは2つの引数を取ります。最初のものは言葉であり、2番目のものは塩です。単語は基本的にユーザーパスワードであり、プロンプトに表示されます。塩はランダムな文字列です。これは、4096の方法のいずれかでDESアルゴリズムを混乱させるために使用されます。ソルトには、大文字、小文字、数値、および「/」、「。」文字のみが含まれます。

このメソッドは、ハッシュ化されたパスワードを文字列として返します。

サンプルコード

import crypt, getpass, spwd
def check_pass():
   username = input("Enter The Username: ")
   password = spwd.getspnam(username).sp_pwdp
   if password:
      clr_text = getpass.getpass()
      return crypt.crypt(clr_text, password) == password
   else:
      return 1
        
if check_pass():
   print("The password matched")
else:    
   print("The password does not match")

出力

(ルートレベルの権限でこのプログラムを実行する)

$ sudo python3 example.py
Enter The Username: unix_user
Password:
The password matched

  1. Pythonのissubset()関数

    この記事では、Python標準ライブラリで利用可能なissubset()関数の実装と使用法について学習します。 issubset()メソッドは、セットのすべての要素が別のセットに存在する場合(引数として渡される場合)はブール値のTrueを返し、それ以外の場合はブール値のFalseを返します。 下の図では、BはAのサブセットです。AとBが同一のセットである場合、AはBの適切なサブセットであることを意味します。これは、両方のセットに同じ要素が含まれていることを意味します。 構文 <set 1>.issubset(<set 2>) 戻り値 boolean True/

  2. Intersection()関数Python

    この記事では、任意のセットで実行できるintersection()関数について学習します。数学によると、共通部分とは、2つのセットから共通の要素を見つけることを意味します。 構文 <set name>.intersection(<set a1> <set a2> ……..) 戻り値 引数として渡されるセット内の共通要素。 例 set_1 = {'t','u','t','o','r','i','a','l&