Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

UNIX 암호를 확인하는 Python 함수

<시간/>

UNIX 암호를 확인하려면 crypt 모듈을 사용해야 합니다. crypt(3) 루틴이 있습니다. 기본적으로 수정된 DES 알고리즘을 기반으로 한 단방향 해시 함수입니다.

crypt 모듈을 사용하려면 다음을 사용하여 가져와야 합니다.

import crypt

방법 crypt.crypt(단어, 소금)

이 메서드는 두 개의 인수를 사용합니다. 첫째는 말씀이고 둘째는 소금입니다. 이 단어는 기본적으로 프롬프트에서 제공되는 사용자 암호입니다. 소금은 임의의 문자열입니다. 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