在日常的代码中,会有些涉及私隐的信息,例如用户名,密码。例如在应用某个平台的API接口时,我们在代码里需要输入APP_ID、API_KEY、SECRET_KEY 这些时是用明文显示,如果代码在转发或者上传给别人前没有处理,所有拿到这些参数的人就可以用你的资料去调用API;又或者如果涉及到邮箱的密码,授权码等,别人就可以对你的邮箱任意操作,这是非常高风险的。那么在代码中不呈现密码,该怎么办?
在之前的博客曾经介绍过 MD5的加解密方法,以及多重的加盐加密方法,但通常 API_KEY、SECRET_KEY 都是一段非常长的字符串,如果代码运行中通过 MD5解码,会降低代码的运行速度。
解决办法是利用 keyring 库,通过系统密钥环将API_KEY、SECRET_KEY预先在本地存储好,后面在代码中调用keyring 库的方法,把API_KEY、SECRET_KEY 取出来作为变量就可以。这样即使别人拿到了全部代码,但他的本地中没有预先配置好密码,就不会有泄露信息的风险了。
可以先通过添加变量,然后利用set_password() 方法进行对应的加密。
import keyring
PROJECT_ID = '288332'
API_KEY