Python 문자열 암호화
-
Simple Crypt
를 사용하여 Python에서 문자열 암호화 -
cryptocode
라이브러리를 사용하여 Python에서 문자열 암호화 -
Cryptography
패키지를 사용하여 Python에서 문자열 암호화 -
RSA
알고리즘을 사용하여 Python에서 문자열 암호화
암호화는 일반 텍스트를 암호문으로 변환하는 프로세스로 정의 할 수 있습니다. 기본적으로 데이터를 인코딩하는 데 사용됩니다. 암호화 프로세스에는 나중에 원본 메시지를 해독하는 데 사용할 수있는 키가 필요합니다.
이 기사에서는 Python에서 문자열을 암호화하는 데 활용할 수있는 다양한 방법에 대해 설명합니다.
Simple Crypt
를 사용하여 Python에서 문자열 암호화
Simple Crypt
모듈을 사용하는 것은 Python 2.7 및 3의 암호화 프로세스를 달성하는 가장 빠르고 간단한 방법입니다.이 방법은 한 줄의 코드를 사용하여 몇 초 만에 일반 텍스트를 암호 텍스트로 변환합니다.
PyCrypto
모듈은이 라이브러리에 대한 알고리즘 구현을 제공하며AES256
암호를 사용합니다. 이 방법은SHA256
암호와HMAC
검사를 통합하여 암호 텍스트가 변경되거나 수정 될 때이를 알립니다.
Simple Crypt
에는encrypt
와decrypt
의 두 가지 기능이 있습니다. 이 두 기능을 모두 사용하려면pycrypto
와simplecrypt
모듈을 모두 설치해야합니다.
다음 코드는simplecrypt
를 사용하여 Python에서 문자열을 암호화합니다.
from simplecrypt import encrypt, decrypt
passkey = "wow"
str1 = "I am okay"
cipher = encrypt(passkey, str1)
print(cipher)
이 코드의 출력은 임의의 문자 클러스터입니다.
암호문을 디코딩 / 복호화하려면 다음 명령을 사용합니다.
print(decrypt("wow", cipher))
출력:
I am okay
cryptocode
라이브러리를 사용하여 Python에서 문자열 암호화
cryptocode
라는 용어는 Python 3 이상에서 안전하고 간단하게 문자열을 암호화하고 해독 할 수있는 간단한 라이브러리입니다. 이 라이브러리는 수동으로 설치해야합니다. pip
명령을 사용하여 수행 할 수 있습니다.
아래 프로그램은cryptocode
라이브러리를 사용하여 Python에서 문자열을 암호화합니다.
import cryptocode
str_encoded = cryptocode.encrypt("I am okay", "wow")
# And then to decode it:
str_decoded = cryptocode.decrypt(str_encoded, "wow")
print(str_decoded)
출력:
I am okay
함수의 첫 번째 매개 변수는 암호화해야하는 문자열입니다. 두 번째 매개 변수는 암호 해독 목적으로 사용될 키 여야합니다.
Cryptography
패키지를 사용하여 Python에서 문자열 암호화
‘암호화’는 대칭 키 암호화를 달성하는 데 사용할 수있는 Python 패키지입니다. 대칭 키 암호화는 인코딩 및 디코딩 프로세스에 동일한 키를 사용하는 방법입니다.
암호화에이 방법을 사용하려면Cryptography
라이브러리를 설치해야합니다. pip
명령을 사용하여 수행 할 수 있습니다.
다음 코드는cryptography
패키지 함수를 사용하여 Python에서 문자열을 암호화합니다.
from cryptography.fernet import Fernet
str1 = "I am okay"
key = Fernet.generate_key()
fernet = Fernet(key)
enctex = fernet.encrypt(str1.encode())
dectex = fernet.decrypt(enctex).decode()
print("The primordial string: ", str1)
print("The Encrypted message: ", enctex)
print("The Decrypted message: ", dectex)
출력:
The primordial string: I am okay
The Encrypted message: <a stack of random letters>
The Decrypted message: I am okay
위의 코드에서는cryptography.fernet
모듈에서Fernet
을 가져옵니다. 그런 다음 인코딩 및 디코딩 목적으로 사용될 암호화 키를 생성합니다. Fernet 클래스는 암호화 키로 인스턴스화됩니다. 그런 다음 문자열은 Fernet 인스턴스로 암호화됩니다. 마지막으로 Fernet 클래스 인스턴스로 해독됩니다.
대칭 키 암호화는 문자열을 쉽게 암호화 할 수있는 방법입니다. 유일한 단점은 상대적으로 덜 안전하다는 것입니다. 키가있는 사람은 누구나 암호화 된 텍스트를 읽을 수 있습니다.
RSA
알고리즘을 사용하여 Python에서 문자열 암호화
Python의RSA
알고리즘은 비대칭 키 암호화를 구현합니다. 비대칭 키 암호화는 암호화 및 암호 해독 프로세스에 두 개의 다른 키를 사용합니다.
이 두 키는개인 키및공개 키입니다. 공개 키는 공개이며 암호화 프로세스에 사용됩니다. 공개 키를 가진 사람은 누구나 데이터를 암호화하고 보낼 수 있습니다. 수신자 만 개인 키를 가지고 있습니다. 또한 액세스 권한이있는 사람도 데이터를 해독 할 수 있습니다.
이 방법을 사용하려면 먼저rsa
라이브러리를 설치해야합니다. 이 라이브러리를 설치하기 위해 일반pip
명령을 사용할 수 있습니다.
다음 코드는RSA
알고리즘을 사용하여 Python에서 문자열을 암호화합니다.
import rsa
pubkey, privkey = rsa.newkeys(512)
str1 = "I am okay"
enctex = rsa.encrypt(str1.encode(), pubkey)
dectex = rsa.decrypt(enctex, privkey).decode()
print("The primordial string: ", str1)
print("The Encrypted message: ", enctex)
print("The Decrypted message: ", dectex)
출력:
The primordial string: I am okay
The Encrypted message: <a stack of random letters>
The Decrypted message: I am okay
위의 코드에서rsa
모듈을 가져오고rsa.newkeys()
함수를 사용하여 공개 및 개인 키를 생성합니다. 그런 다음공개 키를 사용하여 문자열을 암호화합니다. 그런 다음개인 키만 사용하여 문자열을 해독 할 수 있습니다. 이 프로그램의 경우 공개 및 개인 키는 각각pubkey
및privkey
입니다.
비대칭 키 암호화는 대칭 키 암호화보다 더 나은 보안을 제공합니다. 전자에서와 같이 특정개인 키는 수신자 만 액세스 할 수 있으며 암호 해독 목적으로 사용됩니다. 후자에는 하나의 키만 존재하는 반면, 발신자와 수신자 중간에있는 제 3 자의 공격으로부터 복호화 프로세스가 더 쉽고 안전하지 않습니다.
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn