Python에서 암호 생성
우리는 종종 데이터 유출, 사이버 위협 및 시스템에 대한 사이버 공격에 대해 듣습니다. 따라서 데이터의 보안과 기밀성은 우리 삶의 매우 중요한 부분이 되었습니다. 이제 데이터를 보호할 수 있는 방법 중 하나는 암호로 데이터를 보호하는 것입니다.
이 기사에서는 Python에서 암호 생성에 대해 설명합니다.
Python에서 암호 생성
보안에 대해 이야기할 때 암호가 자주 등장합니다. 이제 이러한 암호는 매우 중요한 데이터를 보호하는 데 사용되므로 해커가 해독하기 어려울 것입니다.
공격자는 종종 다양한 문자 조합을 무작위로 시도하고 올바른 암호를 추측하여 이러한 암호를 해독하려고 시도합니다.
우리 인간이 수동으로 암호를 생성하면 쉽게 해독할 수 있습니다. 많은 사람들이 자신의 이름을 해커가 쉽게 해독할 수 있는 숫자 및 기호와 결합하려고 시도합니다.
따라서 이러한 암호는 해독하기 쉽지 않도록 만들어야 합니다. Python에는 크랙하기 어렵고 만들기 쉬운 몇 가지 암호 생성 방법이 있습니다.
이제 그 중 일부에 대해 자세히 살펴보겠습니다.
Python에서 Random 모듈을 사용하여 암호 생성
Python의 random
모듈은 목록에서 임의의 요소를 생성합니다. 또한 Python의 random
모듈에서 choice()
메서드를 사용합니다.
choice()
메서드는 목록에서 임의의 요소를 선택합니다. 따라서 random.choice()
메서드는 이 메서드를 사용하여 암호를 생성하는 주요 캐치입니다.
그러나 이제 우리가 말하는 이 목록이 무엇인지 궁금할 것입니다. 따라서 random.choice()
메서드가 선택할 목록에는 모든 소문자와 대문자, 숫자 및 구두점 기호가 포함됩니다.
따라서 생성되는 암호에는 해독하기 어려운 이러한 문자의 임의 순서가 포함됩니다.
이제 파이썬에서 문자열
모듈을 사용하여 모든 소문자, 대문자, 숫자 및 구두점 기호를 가져옵니다. string
모듈의 ascii.lowercase
메서드는 영어 알파벳의 모든 소문자를 가져오는 데 사용되며 ascii.uppercase
는 영어 알파벳의 모든 대문자를 가져오는 데 사용됩니다.
숫자와 구두점 기호를 얻기 위해 Python의 string
모듈에서 string.digits
및 string.punctuation
메서드를 각각 사용합니다.
Python에서 random
및 string
모듈을 사용하여 암호를 생성하는 코드를 살펴보겠습니다.
import random
import string
def passwordGen(length):
lower = string.ascii_lowercase
upper = string.ascii_uppercase
digits = string.digits
symbols = string.punctuation
comb = lower + upper + digits + symbols
result_str = "".join(random.choice(comb) for i in range(length))
print("Password of length ", length, "is:", result_str)
passwordGen(12)
passwordGen(10)
passwordGen(5)
출력:
Password of length 12 is: ^)n34W6~0Wdx
Password of length 10 is: g&#'G-T\vn
Password of length 5 is: &g/S3
따라서 위 출력에서 볼 수 있듯이 고유하고 크랙하기 어려운 세 가지 다른 길이의 암호가 있습니다.
그러나 코드 예제에서는 random
및 string
모듈을 가져왔습니다. 그런 다음 길이를 매개 변수로 사용하고 해당 특정 길이의 암호를 인쇄하는 passwordGen
함수를 만들었습니다.
함수 내에서 모든 문자, 숫자 및 기호를 다른 변수에 저장했습니다. 이제 이 모든 문자를 단일 문자열로 결합하여 변수 comb
에 저장했습니다.
이제 random.choice(comb)
를 사용하여 지정된 길이까지 각 인덱스에 대해 문자열 comb
에서 임의로 문자를 선택한 다음 결과를 인쇄했습니다.
Python에서 Secrets 모듈을 사용하여 암호 생성
보안 목적으로 강력한 암호화 난수를 생성하는 데 Python의 모듈이 하나 더 사용됩니다. 이 모듈은 비밀
모듈로 알려져 있습니다. 그러나 이 모듈은 Python 버전 3.6 이상에서 사용할 수 있습니다.
이 비밀
모듈은 운영 체제의 가장 안전한 임의성 소스를 제공합니다. 따라서 생성된 암호는 더 안전하고 효과적입니다. 이제 Python의 secrets
모듈을 사용하여 암호를 생성하는 프로그램에 대해 논의하겠습니다.
이 프로그램은 이전에 논의한 것과 유사하지만 secrets
모듈을 사용하는 것이 시스템 보안에 더 안전하고 효과적입니다.
import string
import secrets
def passwordGen(len):
combination = string.ascii_letters + string.digits + string.punctuation
password = "".join(secrets.choice(combination) for i in range(len))
print("Password is: ", password)
passwordGen(12)
passwordGen(8)
출력:
Password is: Gz!*j3p4xd$Z
Password is: 5#;CSIa7
따라서 출력에서 볼 수 있듯이 string
메서드를 사용하여 암호를 생성하기 위해 모든 문자, 숫자 및 문장 부호를 결합하는 combination
변수가 있는 passwordGen
메서드를 만들었습니다. 파이썬의 모듈.
그런 다음 secrets.choice(combination)
메서드를 사용하고 주어진 len
길이의 암호를 만들기 위해 선택할 수 있는 모든 문자를 지정한 다음 인쇄합니다. 따라서 secrets
모듈을 사용하여 Python에서 암호 생성을 수행합니다.
결론
이 기사에서는 Python에서 암호를 생성하는 방법에 대해 설명했습니다. 보안은 이 시대의 주요 요구 사항이므로 안전하고 안전한 암호 생성이 매우 중요합니다.
이를 위해 Python에는 두 개의 모듈, 즉 random
및 secrets
이 있으며, 이는 어렵고 해독하기 쉽지 않은 암호를 생성하는 데 도움이 됩니다. 그러나 두 모듈 모두 문자열
모듈의 도움을 받아 선택할 문자 조합을 선택합니다.
그러나 secrets
모듈은 Python 버전 3.6에서 구현되었지만 여전히 암호를 생성하는 더 안전하고 안전한 방법으로 간주됩니다.