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

Python에서 데이터를 암호화하고 해독하는 방법

<시간/>

소개

암호화란 무엇입니까? 암호화는 일반 텍스트를 데이터 암호화라고 하는 암호문으로 변환하고 암호문을 다시 일반 텍스트로 변환하는 것을 데이터 복호화라고 합니다.

fernet 모듈을 사용할 것입니다. 암호화 패키지에서 Python을 사용하여 데이터를 암호화하고 해독합니다. fernet 모듈을 사용하는 동안 암호화된 데이터를 읽거나 조작할 수 없는 고유 키가 생성됩니다.

이제 우리가 무엇을 다룰지 알았으니 시작하겠습니다.

시작하기

암호화 모듈은 Python과 함께 제공되지 않으므로 pip 패키지 관리자를 사용하여 설치해야 합니다. 그렇게 하려면 터미널을 실행하고 아래 코드를 입력하십시오.

pip 설치 암호화

패키지를 다운로드하여 설치하면 해당 모듈을 가져올 수 있습니다.

우리는 fernet 모듈을 사용하여 데이터를 암호화하고 해독합니다. 이제 Python 스크립트로 가져오도록 하겠습니다.

cryptography.fernet 가져오기 Fernet에서

참고 − 대소문자가 올바른지 확인하십시오.

스크립트 작성을 시작할 준비가 모두 되었습니다.

키 생성

데이터 암호화를 시작하려면 먼저 fernet 키를 만들어야 합니다. .

키 =Fernet.generate_key()f =Fernet(키)

위의 줄에서 우리는 generate_key() 메서드를 사용하여 키를 생성하고 그 키를 다음 줄의 변수 "f"에 할당했습니다.

이제 사용할 준비가 된 변수에 키가 저장되어 있습니다.

필요한 경우 키를 인쇄하고 저장할 수 있습니다. 반드시 디코드 기능을 사용하여 인쇄하시기 바랍니다.

인쇄(key.decode())

출력

Bq64GE−−93K1RVro4go1frN−8twBSvXdbCPSPLIKz9U=

데이터 암호화

위 키의 데이터를 암호화하기 위해서는 암호화 방식을 사용해야 합니다.

encrypted_data =f.encrypt(b"이 메시지는 암호화되어 볼 수 없습니다!")

그리고 그게 다야, 위의 문장은 암호화되었다.

암호화된 메시지를 보려면 인쇄해야 합니다.

인쇄(암호화된_데이터)

출력

b'gAAAAABgILy91p_wqMntdT3mDkh0IBXSLjuBMQAfnGZAFkZCX1U6Q7TU2PthgFBwVz0QbKXpuNTHRzAgbdDV4zfzkUztbdDV4zfuuzkGCXqVD--xJdkTycKH2iurc_ 

참고 − 바이트 형식으로 변환하기 위해 문장 앞에 b를 붙였습니다. 대신 encode() 메서드를 사용할 수도 있습니다.

데이터 복호화

이제 암호 텍스트를 얻었으므로 이를 다시 일반 읽을 수 있는 텍스트로 변환하는 방법을 살펴보겠습니다.

fernet 모듈에서 복호화 방법을 사용하여 복호화를 달성할 수 있습니다.

decrypted_data =f.decrypt(encrypted_data) # f는 key.print(decrypted_data)의 값을 갖는 변수입니다.

출력

b'이 메시지는 암호화되어 볼 수 없습니다!'

참고 − 위의 출력을 보면 인쇄된 일반 텍스트 앞에 b'가 있는 것을 알 수 있습니다. 이는 암호화된 데이터가 다시 바이트 형식으로 변환되기 때문입니다. 일반 텍스트만 얻으려면 디코딩 기능을 사용해야 합니다.

인쇄(decrypted_data.decode())

출력

이 메시지는 암호화되어 볼 수 없습니다!

참조 - 동일한 키를 사용하여 데이터를 암호화 및 해독할 수 있습니다. 즉, 키 값을 출력하여 저장하면 됩니다. 변수에 할당하여 동일한 키를 사용할 수 있습니다. 예 ->

f =Fernet(Bq64GE--93K1RVro4go1frN-8twBSvXdbCPSPLIKz9U=) # 실제 키 값이 주어집니다.

예시

cryptography.fernet에서 가져오기 Fernetkey =Fernet.generate_key()print("Key:", key.decode())f =Fernet(key)encrypted_data =f.encrypt(b"이 메시지는 암호화 중이므로 암호화할 수 없습니다. 본!")print("암호화 후:", 암호화된_데이터)decrypted_data =f.decrypt(encrypted_data)print(decrypted_data)print("해독 후:", 해독된_data.decode())

출력

 키 :u4dM7xw8sNNU3Rm_lwDbixudWSeaM0Z4TTDdQNKsouI =암호화 후 :b'gAAAAABgIL3_qbfM_oMgQn653gpk6a7hqxXiR0dl0vrmOmqnr5b6MqrsjGkK1IknxMLLtOCq6_YlX4x3nBedbZqtCqy4os55pttrl-pBO6-dJf6kVP50IpIaKSXbpAsuWl4h_2o_E-4YEqZ5kkgxWrwnqojmkMyuSQ =='b'This 메시지가 암호화되고 및 볼 수없는! 복호 후!이 메시지가 암호화되고 및 볼 수없는  

결론

이제 Python의 암호화 패키지를 사용하여 데이터를 암호화하고 해독하는 방법을 배웠습니다.

키를 .txt 파일로 저장한 다음 검색하여 암호를 암호화하고 저장하거나 데이터베이스에서 암호를 해독하여 일치하는지 확인할 수도 있습니다. 미니 프로젝트든 대규모 프로젝트든 이를 사용할 수 있는 다양한 경우가 있습니다.

암호화 모듈에 대한 자세한 내용은 https://pypi.org/project/cryptography/

에서 공식 문서를 읽을 수 있습니다.