반응형
Python에서 pyotp Module을 이용하여 OTP(One Time Password)를 생성할 수 있는데 OTP에는 HOTP와 TOTP라는 2가지 방식이 존재합니다.
HOTP (HMAC Based One Time Password) : 숫자 값을 기준으로 OTP 생성
TOTP (Time Based One Time Password) : 시간 값을 기준으로 OTP 생성
여기서는 Python의 pyotp를 이용하여 TOTP를 생성하였습니다.
1. pyotp 설치
$ pip install pyotp
2. OTP 생성 방법1
※ 기본 설정으로 30초 단위로 6자리의 OTP가 변경됨
import pyotp
import time
import base64
otp_key = base64.b32encode("test".encode())
now = int(time.time())
totp = pyotp.TOTP(otp_key)
otp1 = totp.at(now-30) # before 30s
otp2 = totp.at(now)
otp3 = totp.at(now+30) # after 30s
print(otp2) # OTP Password as of Current Time
print(totp.verify(otp2)) # True
3. OTP 생성 방법2
※ 180초 단위로 3자리의 OTP가 변경됨
import pyotp
import time
import base64
otp_key = base64.b32encode("test".encode())
now = int(time.time())
totp = pyotp.TOTP(otp_key, digits=3, interval=180)
otp1 = totp.at(now-180) # before 180s
otp2 = totp.at(now)
otp3 = totp.at(now+180) # after 180s
print(otp2) # OTP Password as of Current Time
print(totp.verify(otp2)) # True
반응형
'Study > Python' 카테고리의 다른 글
Ren'Py를 통한 게임 개발 시작 (0) | 2023.02.19 |
---|---|
[MAC] PKG로 설치한 Python 2.7 삭제하기 (0) | 2022.11.29 |
[Python] SQLite3 사용 방법 (0) | 2022.09.17 |
[Python] 리스트 내 문자열이 특정 문자열 내에 존재하는지 비교 코드 (0) | 2022.09.09 |
Python을 통한 Simple HTTPS Server 구축 (0) | 2022.08.22 |
댓글