Python 스크립트에서 사용할 암호를 안전하게 저장
일부 Python 스크립팅에서 사용할 암호를 안전하게 저장하는 방법을 찾고 있습니다. 나는 다른 것에 로그인 할 것이며 스크립트 자체에 암호를 일반 텍스트로 저장하고 싶지 않습니다.
대신 나는 그 암호를 안전하게 저장할 수있는 것이 있는지 궁금해서 처음에 스크립트에 입력 할 수있는 마스터 암호와 같은 것을 사용하여 검색했습니다.
마스터 키를 직접 알아 두십시오. 하드 코딩하지 마십시오.
사용 py-bcrypt
(bcrypt), 강력한 해싱 기술은 암호를 직접 생성합니다.
기본적으로 할 수 있습니다 (아이디어 ...)
import bcrypt
from getpass import getpass
master_secret_key = getpass('tell me the master secret key you are going to use')
salt = bcrypt.gensalt()
combo_password = raw_password + salt + master_secret_key
hashed_password = bcrypt.hashpw(combo_password, salt)
소금과 해시 된 암호를 어딘가에 저장하여 암호를 사용해야 할 때마다 암호화 된 암호를 읽고 다시 입력하는 원시 암호에 대해 테스트합니다.
이것은 기본적으로 요즘 로그인이 작동하는 방식입니다.
일반적으로 secrets.py
다른 Python 스크립트와 별도로 저장되며 버전 제어가 없습니다. 그런 다음 필요할 때마다 from secrets import <required_pwd_var>
. 이 방법을 사용하면 자체적으로 재창조하지 않고도 운영 체제에 내장 된 파일 보안 시스템에 의존 할 수 있습니다.
Base64
인코딩 / 디코딩을 사용 하는 것은 완전히 안전하지는 않지만 암호를 난독 화하는 또 다른 방법입니다.
추가 정보 -Python 스크립트에서 비밀번호 숨기기 (안전하지 않은 난독 화만 해당)
안전한 방법은 AES로 민감한 데이터를 암호화하는 것이며 암호화 키는 AES의 암호화 키를 암호화 / 복호화하는 데 사용되는 마스터 비밀번호 인 PBE (암호 기반 키 파생 기능)에 의해 파생됩니다.
마스터 비밀번호-> 보안 키-> 키로 데이터 암호화
pbkdf2 를 사용할 수 있습니다.
from PBKDF2 import PBKDF2
from Crypto.Cipher import AES
import os
salt = os.urandom(8) # 64-bit salt
key = PBKDF2("This passphrase is a secret.", salt).read(32) # 256-bit key
iv = os.urandom(16) # 128-bit IV
cipher = AES.new(key, AES.MODE_CBC, iv)
salt / iv / passphrase를 저장하고 동일한 salt / iv / passphase를 사용하여 해독하십시오.
Weblogic은 유사한 접근 방식을 사용하여 구성 파일의 암호를 보호했습니다.
참고 URL : https://stackoverflow.com/questions/12042724/securely-storing-passwords-for-use-in-python-script
'Program Tip' 카테고리의 다른 글
PHP 클래스 인스턴스화. (0) | 2020.11.02 |
---|---|
GetStringUTFChars가 복사본을 반환하면 ReleaseStringUTFChars를 호출해야합니까? (0) | 2020.11.02 |
Selenium 오류-원격 WebDriver에 대한 HTTP 요청이 60 초 후에 시간 초과되었습니다. (0) | 2020.11.02 |
Selenium은 헤드리스 브라우저 테스트를 지원합니까? (0) | 2020.11.02 |
jsFiddle로 두 개 이상의 프레임 워크를 선택하려면 어떻게해야합니까? (0) | 2020.11.02 |