회원가입한 유저가 본인의 비밀번호를 까먹었을 경우에 랜덤으로 생성된 비밀번호를 이메일로 보내주는 경우를 종종 보셨을 것입니다. 오늘은 어떻게 랜덤 비밀번호를 생성하는지에 대해 다루도록 하겠습니다.
저는 영어대소문자, 숫자, 특수문자가 혼합된 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 |
위 코드를 실행하면 다음과 같이 영어, 숫자, 특수문자로 구성된 랜덤 비밀번호가 생성됩니다.
'Dev > python' 카테고리의 다른 글
[python] 해당 경로가 디렉토리인지 파일인지 확인하는 방법 (0) | 2021.01.09 |
---|---|
[python] cv2.imread, cv2.imwrite 한글 경로 인식을 못하는 문제 해결 방법 (2) | 2021.01.08 |
[python] 어떤 디렉토리 내에 존재하는 모든 이미지 파일들의 경로 리스트 만들기 (0) | 2021.01.08 |
[python] 쉽고 간단하게 마스크 착용 유무 판별기 만들기 (106) | 2021.01.07 |
[python] 이번 달의 첫 시간과 마지막 시간을 알고 싶다면? 2021-01-01 00:00:00 과 2021-01-31 23:59:59 (2) | 2021.01.05 |
[python] 리스트 내 중복된 요소 없애고 하나씩만 남게 하는 3가지 방법 (2) | 2021.01.04 |
[flask+jinja2] 행 개수 세기, 문자열 길이 산출하기, length 필터 (0) | 2020.12.18 |
[python] 튜플의 값을 바꿔주려면? 리스트로 변환한 후 다시 튜플로 (0) | 2020.12.14 |