[Python]
파이썬을 이용해 OTP 시스템 만들기

2020. 11. 11. 23:04


728x90

Python과 Pyotp모듈을 이용해 간단한 OTP 시스템을 구현할 수 있다.

$ pip3 install pyotp

 

위 명령을 이용해 pyotp모듈을 설치한다.

설명이 필요할정도의 복잡한 코드는 없기에, 라인별 주석 설명으로 코드해석은 대체한다.

import pyotp     # pyotp 
import datetime  # 시간 라이브러리

# otp에 사용할 키 - base32 방식 A-Z 2-7까지를 이용하고 = 는 채워야하는 공간 패딩 처리용
otp_key = 'GAYDAMBQGADDAMBQGAYDAMBQGA======'

# totp 생성
totp = pyotp.TOTP(otp_key)
# 현재 시간 얻기
now = datetime.datetime.now()

# 현재 시간 출력
print('current time : ', now)
# totp.at을 이용한 TOTP 값 출력, totp.now를 이용한 출력
print("now totp.at: " +  str(totp.at(datetime.datetime.now())) + ", totp.now : " + totp.now())
# 현재 시간에 30초를 더해서 totp.at으로 30초 후 OTP 값을 출력
print('next otp : ', totp.at(int(now.timestamp())+30))
1 2 3 4 5 6 7 8 ··· 95