2021-01-06 08:11:50

회원가입한 유저가 본인의 비밀번호를 까먹었을 경우에 랜덤으로 생성된 비밀번호를 이메일로 보내주는 경우를 종종 보셨을 것입니다. 오늘은 어떻게 랜덤 비밀번호를 생성하는지에 대해 다루도록 하겠습니다. 

 

저는 영어대소문자, 숫자, 특수문자가 혼합된 10자리의 랜덤 비밀번호를 생성해보겠습니다. 알고리즘은 다음과 같습니다.

 

1) 영어대소문자, 숫자, 특수문자를 비밀번호의 한자리를 차지할 수 있는 후보로 준비해줍니다.

2) 준비된 비밀번호 한자리 후보에서 랜덤으로 하나씩 10번 선택한 것을 이어줍니다. 

 

파이썬 코드로 구현하면 다음과 같습니다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import string
import random
 
new_pw_len = 10 # 새 비밀번호 길이
 
print("영어대소문자", string.ascii_letters)
print("숫자", string.digits)
print("특수문자", string.punctuation)
 
pw_candidate = string.ascii_letters + string.digits + string.punctuation 
 
new_pw = ""
for i in range(new_pw_len):
    new_pw += random.choice(pw_candidate)
 
print("\n생성된 랜덤 비밀번호", new_pw)
cs

 

위 코드를 실행하면 다음과 같이 영어, 숫자, 특수문자로 구성된 랜덤 비밀번호가 생성됩니다.