상세 컨텐츠

본문 제목

[Python] 비밀번호 생성기

Python 예제

by D.119 2024. 3. 16. 23:22

본문

https://www.youtube.com/watch?v=SqvVm3QiQVk&t=2531s

Code With Tomi 튜토리얼에서 랜덤 비밀번호 생성기를 만드는 법을 배웁니다.

사용자로부터 비밀번호에 들어갈 숫자와 길이에 대한 데이터를 받아서

랜덤 문자가 들어간 비밀번호 모음을 출력합니다.

import random

print('암호 생성기 시작!')

chars = 'abcdefghijklmnoprstuvwxyzABCEDFGHIJKLMNOPRSTUVMXZ!@#$%^&*().,?0123456789'

number = input('생성할 암호의 양: ')
number = int(number)

length = input('암호 길이를 입력하십시오: ')
length = int(length)

print('\n여기 당신의 암호가 있습니다: ')

for pwd in range(number):
  passwords = ''
  for c in range(length):
    passwords += random.choice(chars)
  print(passwords)

↓  

[random] 라이브러리 임포트:

 

import random

→ random 모듈을 임포트합니다.

이 모듈은 무작위 수를 생성하는 함수들을 제공하며,

여기서는 암호 문자를 무작위로 선택하는 데 사용됩니다.

↓  

시작 메시지 출력:

print('암호 생성기 시작!')

→ 프로그램의 시작을 알리는 메시지를 출력합니다.

↓  

 

사용 가능한 문자 설정:

chars = 'abcdefghijklmnoprstuvwxyzABCEDFGHIJKLMNOPRSTUVMXZ!@#$%^&*().,?0123456789'

→ 암호 생성에 사용될 수 있는 문자들의 목록입니다.이 문자열에는 소문자, 대문자, 특수 문자, 숫자가 포함되어 있습니다.

↓  

암호의 양과 길이 입력 받기:

number = input('생성할 암호의 양: ')
number = int(number)

length = input('암호 길이를 입력하십시오: ')
length = int(length)

→ 사용자에게 생성할 암호의 개수(number)와 각 암호의 길이(length)를 입력받습니다.

입력받은 값은 문자열이기 때문에, 정수형으로 변환해야 합니다.

↓  

암호 생성 및 출력:

print('\n여기 당신의 암호가 있습니다: ')

for pwd in range(number):
  passwords = ''
  for c in range(length):
    passwords += random.choice(chars)
  print(passwords)

→ 암호를 생성하고 출력하는 부분입니다.

→  외부 for문은 사용자가 요청한 암호의 개수만큼 반복됩니다.

각 반복마다 빈 문자열 passwords를 초기화합니다.

내부 for문은 사용자가 지정한 길이만큼 반복됩니다.

이 반복문은 random.choice(chars)를 사용하여

chars 문자열에서 무작위 문자를 선택하고,

이를 passwords 문자열에 추가합니다.

random.choice() 함수는 주어진 시퀀스에서 무작위로 항목을 선택합니다.

→ 내부 for문이 종료되면, 하나의 암호가 완성됩니다.

이 암호는 passwords 변수에 저장되어 있으며, 이를 print 함수를 사용하여 출력합니다.

↓  

이 코드를 통해 사용자는 원하는 개수와 길이의 무작위 암호를 생성할 수 있습니다.

이러한 암호들은 로그인 정보, 암호화 키 등 다양한 보안 목적으로 사용될 수 있습니다.

코드 실행 결괏값

'Python 예제' 카테고리의 다른 글

[Python] QR 코드 디코더  (0) 2024.03.17
[Python] QR 코드 인코더  (0) 2024.03.17
[Python] 숫자 맞추기 게임 (사용자)  (2) 2024.03.16
[Python] 숫자 맞추기 게임 (컴퓨터)  (0) 2024.03.16
[Python] 매드 립스(Mad Libs)  (0) 2024.03.16

관련글 더보기