나는 데이터베이스에 연결하는 동료와 스크립트를 개발 중이다. 우리는 암호를 비공개로 유지하면서 근무일 동안 계속해서 인증 할 필요없이 코드를 독립적으로 유지하고자합니다. 일부 검색 (우리는 둘 다 파이썬에서 초보자입니다) 후, 우리는이 목적을 위해 키링을 사용할 수있는 것으로 보이기 때문에 pip (설치 날짜의 내 메모리를 기반으로하는 라이브러리의 가장 가능성있는 버전 1.2.2)에서 설치했습니다. ,마스터 비밀번호를주지 않고 Windows에서 키링에 액세스 할 수 있습니까?
>>> import keyring
>>> keyring.set_password('Service', 'MyUsername', 'MyPassword')
Warning (from warnings module):
File "C:\Python27\lib\getpass.py", line 92
return fallback_getpass(prompt, stream)
GetPassWarning: Can not control echo on the terminal.
Warning: Password input may be echoed.
Please enter password for encrypted keyring:
암호를 설정 한 후 :
문제는 내가 내 저장된 암호에 액세스하려고 할 때 (IDLE에서) 다음과 같이, 나는, 키링에 액세스하기 위해 마스터 암호를 설정하라는 메시지가 표시하고 있다는 것입니다 쉘을 다시 시작할 때까지 암호를 쉽게 얻을 수 있습니다. 지금은 다시 마스터 암호를 입력해야합니다 :
>>> ================================ RESTART ================================
>>> import keyring
>>> print keyring.get_password('Service', 'MyUsername')
Warning (from warnings module):
File "C:\Python27\lib\getpass.py", line 92
return fallback_getpass(prompt, stream)
GetPassWarning: Can not control echo on the terminal.
Warning: Password input may be echoed.
Please enter password for encrypted keyring:
마스터 암호를 입력 한 후,이 인증은 다시 시작 사이에/현재 세션 동안에 만 지속됩니다. 명령 줄에서 스크립트를 실행할 때 스크립트가 실행될 때마다 인증해야합니다. 이 시점에서 열쇠 고리는 시간과 노력을 저축하지 못합니다. 암기와 수동 입력에 비해 암호가 더 안전 해지는 것은 아닙니다.
솔루션을 검색 한 후에는 마스터 암호는 사용자 계정의 암호와 같은 경우 자동으로 유닉스 인증합니다 열쇠 고리처럼 보이지만이 Windows에서 나를 위해 작동하지 않았다.
열쇠 고리를 만들려고하지 않습니까? 아니면 구현에 오류가 있습니까?
내 경험은 그가 응용 프로그램 관련 문제의 열쇠 고리에 액세스하려고 암호를 입력하라는 메시지가되지 않는 주장하고 다른 사용자 (들)에 의해보고 그와 충돌 것으로 보인다, How does python-keyring work on Windows?
답변이 없지만 비슷한 문제가 발생했습니다.필자는 필자가 파이썬 키링 백엔드 (아마도 keyring.backends.file.BaseKeyring에서 하위 클래스 화)를 구현하고 암호화/암호 해독 메소드를 인증서 기반 스키마로 재정의하고 백엔드를 다음과 같이 구성해야한다고 생각합니다. 허용 된 사용자를 식별하는 인증서를 사용하십시오 – rtmie
어떤 키링 버전을 사용하고 있습니까? 방금 https://bitbucket.org/kang/python-keyring-lib/downloads에서 최신 키링을 다운로드했습니다. IDLE에서 Python2.7을 사용하여 Windows 7에서 시도했습니다. 그것은 당신과 같은 경고를보고하지 않았고, 묻지도 않았습니다. 암호화 된 키링을위한 암호를 입력하십시오 :. 여기에서 잘 작동합니다 – ZZY
@ZZY이 질문이 작성되었을 당시 버전 1.2.2를 사용하고 있었지만 곧 포기하고 사용하지 않았습니다. 이 문제는'pip'를 통해 현재 버전 3.8에서 더 이상 존재하지 않는 것 같습니다. 수표를 보내 주셔서 감사합니다. 답변을 작성하면 현상금에 대한 크레딧을드립니다. – Air