반응형
Random Password Generator (자동 비밀번호 생성기) with Python
필요 라이브러리
random
1
|
import random
|
cs |
서론
자동 비밀번호 생성기가 많이 필요하지 않을 수 있다. 근데 비밀번호 만들기 귀찮을 때 한 번 돌려서 자동 생성되는 것으로 사용할 수도 있으니 그냥 재미삼아 만들어봤다.
본론
1) 비밀번호 구성
비밀번호는 크게 4가지 텍스트 종류 (text type)으로 구성된다. 대문자, 소문자, 숫자, 특수문자. 4가지를 모두 포함시킬 것인지 몇 가지 타입만 포함할 것인지 유저가 선택할 수 있어야 한다.
1
2
3
4
|
uppercase_letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
lowercase_letters = uppercase_letters.lower()
digits = "0123456789"
symbols = "()[]{},;:.-_/\\?+*#"
|
cs |
2) 비밀번호 길이 & 비밀번호 개수 설정
1
2
|
length = 8
amount = 10
|
cs |
length (길이)는 비밀번호의 길이, amount (개수)는 생성할 비밀번호의 개수를 의미한다.
3) 비밀번호 생성
1
2
3
|
for x in range(amount):
password = "".join(random.sample(all, length))
print(password)
|
cs |
4) 결과
아래는 대문자, 소문자, 숫자, 특수문자 버튼을 모두 켜고, 비밀번호의 길이를 8로 설정하고, 비밀번호 개수를 10개로 설정했을 때의 결과이다.
1
2
3
4
5
6
7
8
9
10
|
\bkG]p}5
]O\0edaU
b*4}Vi:6
cPp}-*6{
x{Ct(W8H
0cmsvdQ-
#xT\dL;2
PyYqZ09i
4_7W)XPw
*wK-?Zy#
|
cs |
물론 특정 웹사이트는 SQL Injection을 예방하고자 허용하지 않는 특수문자가 있다. 그럴 때는 아래 문자에서 사용하고 싶지 않은 문자를 수동으로 제거하면 된다.
1
2
3
4
|
uppercase_letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
lowercase_letters = uppercase_letters.lower()
digits = "0123456789"
symbols = "()[]{},;:.-_/\\?+*#"
|
cs |
Full Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
import random
uppercase_letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
lowercase_letters = uppercase_letters.lower()
digits = "0123456789"
symbols = "()[]{},;:.-_/\\?+*#"
# symbols = "()[]{};:?+*#"
# 비밀번호 구성 선택
upper, lower, nums, syms = True, True, True, True
# Example 01: 대문자를 원하지 않는다면
# upper, lower, nums, syms = False, True, True, True
all = ""
if upper:
all += uppercase_letters
if lower:
all += lowercase_letters
if nums:
all += digits
if syms:
all +=symbols
length = 8 # 비밀번호의 길이
amount = 10 # 비밀번호의 개수
for x in range(amount):
password = "".join(random.sample(all, length))
print(password)
|
cs |
반응형
'공부 > 파이썬 Python' 카테고리의 다른 글
Python pytest 테스팅 기초 (QA) 01강 (0) | 2022.02.01 |
---|---|
구글 검색 알고리즘 구현하기 with Python (0) | 2022.01.31 |
비밀번호 강력도 확인 (Password Strength Checker) with Python (0) | 2022.01.26 |
Pomodoro 뽀모도로 공부 타이머 만들기 (feat. Python, Threading) (0) | 2022.01.23 |
파이썬으로 3D 게임 만들기 (feat. Ursina) (0) | 2022.01.23 |
댓글