티스토리 뷰

    testID = "Test-ID"
    testPW = "Test-PW"
    serviceName = "BST261Service"

    keyring.set_password(serviceName, testID, testPW)
    time.sleep(2.3)
    resPW = keyring.get_password(serviceName, testID)
    print(resPW)

새 폰으로 바꾸면서 버리려고 서랍에 넣어뒀던 구형 스마트폰을 서버로 사용하게 됐다.

구형이라고는 하지만, 간단한 웹 서비스 또는 SaaS를 구동시키기에는 부족한 점이 없는 것 같아,

이리저리 정보를 구해서 테스트해보고 몇 가지 서비스를 올려서 구동 중이다.

빌리언트의 주된 서비스 중 하나인 절연형 전압/전류 원격 감시 시스템(BiliMon)의 측정 및 수집 데이터를 누구나 볼 수 있게 만든 서비스가 대표적이다.

 

https://bilimon.bilientsvc.org/realtimeviewer/

 

데이터 조회 결과

1628628 A2:489550530 ET:39974729/V1:6.501/L2:159.188/;ET:40017843/V1:6.494/L2:159.036/;ET:39977219/VM:6.503/;ET:40010711/VN:6.490/;ET:39983268/IM:164.699/;ET:39989751/IN:158.849/; AS:200 EC:180/AS:200/BC:0/US:T10/OM:D/TM:210/PV:173/; 2026-01-26 12:59:32

bilimon.bilientsvc.org

 

이 서버 내 서비스를 구현하는 데에 다양한 기술들이 들어간다.

파이썬(Python), Flask, Cloudflare 등등 여러가지가 적용됐다.

그 중에서 보안을 위해 사용된 것이 keyring 모듈이다.

이 모듈을 파이썬 내에서 사용하려니 권한 문제로 인해 사용에 제약이 있을 때 대안으로 사용할 수 있는 모듈을 제안한다.

 

keyrings.alt

설치 방법 : pip install keyring keyrings.alt

사용 방법 :  keyring과 동일하므로 기존 코드를 수정할 필요가 없음.

 

[예제 코드]

import keyring
from keyrings.alt.file import EncryptedKeyring

# 1. 사용할 백엔드 객체 생성
# EncryptedKeyring은 데이터를 파일에 저장하며, 접근 시 마스터 비밀번호가 필요할 수 있습니다.
alt_keyring = EncryptedKeyring()

# 2. 현재 세션에 백엔드 설정
keyring.set_keyring(alt_keyring)

# 서비스 이름, 사용자 이름, 저장할 비밀번호 설정
service_name = "my_app_service"
username = "user123"
password_to_store = "super_secret_password"

try:
    # 3. 비밀번호 저장
    keyring.set_password(service_name, username, password_to_store)
    print(f"[{service_name}] 서비스에 비밀번호가 안전하게 저장되었습니다.")

    # 4. 비밀번호 불러오기
    retrieved_password = keyring.get_password(service_name, username)
    print(f"불러온 비밀번호: {retrieved_password}")

except Exception as e:
    print(f"오류 발생: {e}")

 

[예제 코드 #2]

 

 

 

 

반응형
반응형
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
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
글 보관함