Python 문자열 암호화

Vaibhhav Khetarpal 2023년1월30일
  1. Simple Crypt를 사용하여 Python에서 문자열 암호화
  2. cryptocode라이브러리를 사용하여 Python에서 문자열 암호화
  3. Cryptography패키지를 사용하여 Python에서 문자열 암호화
  4. RSA알고리즘을 사용하여 Python에서 문자열 암호화
Python 문자열 암호화

암호화는 일반 텍스트를 암호문으로 변환하는 프로세스로 정의 할 수 있습니다. 기본적으로 데이터를 인코딩하는 데 사용됩니다. 암호화 프로세스에는 나중에 원본 메시지를 해독하는 데 사용할 수있는 키가 필요합니다.

이 기사에서는 Python에서 문자열을 암호화하는 데 활용할 수있는 다양한 방법에 대해 설명합니다.

Simple Crypt를 사용하여 Python에서 문자열 암호화

Simple Crypt모듈을 사용하는 것은 Python 2.7 및 3의 암호화 프로세스를 달성하는 가장 빠르고 간단한 방법입니다.이 방법은 한 줄의 코드를 사용하여 몇 초 만에 일반 텍스트를 암호 텍스트로 변환합니다.

PyCrypto모듈은이 라이브러리에 대한 알고리즘 구현을 제공하며AES256암호를 사용합니다. 이 방법은SHA256암호와HMAC검사를 통합하여 암호 텍스트가 변경되거나 수정 될 때이를 알립니다.

Simple Crypt에는encryptdecrypt의 두 가지 기능이 있습니다. 이 두 기능을 모두 사용하려면pycryptosimplecrypt 모듈을 모두 설치해야합니다.

다음 코드는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()함수를 사용하여 공개 및 개인 키를 생성합니다. 그런 다음공개 키를 사용하여 문자열을 암호화합니다. 그런 다음개인 키만 사용하여 문자열을 해독 할 수 있습니다. 이 프로그램의 경우 공개 및 개인 키는 각각pubkeyprivkey입니다.

비대칭 키 암호화는 대칭 키 암호화보다 더 나은 보안을 제공합니다. 전자에서와 같이 특정개인 키는 수신자 만 액세스 할 수 있으며 암호 해독 목적으로 사용됩니다. 후자에는 하나의 키만 존재하는 반면, 발신자와 수신자 중간에있는 제 3 자의 공격으로부터 복호화 프로세스가 더 쉽고 안전하지 않습니다.

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

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

관련 문장 - Python String