存储API python模块凭据的安全方法

2024-09-30 22:13:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个名为SpaceTrackTools的python API模块。但是,它要求脚本将密码和用户名作为变量存储在脚本中。我想知道是否有更安全的方法保存细节

谢谢


Tags: 模块方法脚本api密码细节用户名spacetracktools
3条回答

一种选择是使用dotenv

这样,您可以将您的私人详细信息保存在一个名为.env的单独文件中

然后在运行时读取脚本中的私有详细信息

例如:

File.env值:

USERNAME=MyUserName
PASSWORD=Spec!alP@ssw0rd*19?

脚本使用:

import os  # also need os
from dotenv import load_dotenv

load_dotenv()  # blank if .env file in same directory as script
# load_dotenv('<path to file>.env') to point to another location
USERNAME = os.getenv('USERNAME')
PASSWORD = os.getenv('PASSWORD')

# your code

添加到.env方法中请确保设置了.gitignore文件,以便git不会在repo中包含.env文件。您可以在Github gitignore repohere上找到python的.gitignore文件

您可以使用keyring在脚本外部存储用户名和密码。命令行界面允许您获取、设置或删除存储的密码。您可以将用户名当作密码来存储,以确保其安全

$ keyring  help
Usage: keyring [get|set|del] SERVICE USERNAME

Options:
  -h,  help            show this help message and exit
  -p KEYRING_PATH,  keyring-path=KEYRING_PATH
                        Path to the keyring backend
  -b KEYRING_BACKEND,  keyring-backend=KEYRING_BACKEND
                        Name of the keyring backend
   list-backends       List keyring backends and exit
   disable             Disable keyring and exit

从命令行设置服务的用户名和密码

$ keyring set spacetracktools username
Password for 'username' in 'spacetracktools': 
$ keyring set spacetracktools password
Password for 'password' in 'spacetracktools': 
import keyring

# get username and password from keyring
username = keyring.get_password("spacetracktools", "username")
password = keyring.get_password("spacetracktools", "password")

print("My username is:", username)
print("My password is:", password)

相关问题 更多 >