Python:需要多个调用时保护密码参数

Python:需要多个调用时保护密码参数,python,lambda,passwords,Python,Lambda,Passwords,我正在实现一个类,该类表示与API/数据库的连接,并希望提供一种方法,以便在连接丢失(例如,由于超时)时重新连接。用户在初始化时提供用户名和密码,由于API的要求,必须是原始文本 我认为不应该在任何实例变量中存储密码;我知道,但我想知道是否有任何方式不依赖于外部库和/或密码以后无法通过任何方式透露 我想到的一种方法是使用lambda创建者: 类连接: 定义初始化(self,*args,**kwargs): #其他东西 密码=输入(“某些消息”) self.connection_handle=(l

我正在实现一个类,该类表示与API/数据库的连接,并希望提供一种方法,以便在连接丢失(例如,由于超时)时重新连接。用户在初始化时提供用户名和密码,由于API的要求,必须是原始文本

我认为不应该在任何实例变量中存储密码;我知道,但我想知道是否有任何方式不依赖于外部库和/或密码以后无法通过任何方式透露

我想到的一种方法是使用lambda创建者:

类连接:
定义初始化(self,*args,**kwargs):
#其他东西
密码=输入(“某些消息”)
self.connection_handle=(lambda pass:(lambda:api.connect(password=pass))(密码)
删除密码
self.conn=self.connection\u handle()
def重新连接(自我):
self.conn=self.connection\u handle()
其中,为简单起见,我们假设一些API提供的连接过程
API.connect
仅使用
password
,这是一个原始密码

我尝试了
inspect.showsource
,还检查了
connection\u handle
的其他属性。在我看来,任何地方都找不到
密码的值。但我不能完全确定

下面是我的问题:

  • 这个lambda creator方法真的安全吗?即使可以访问
    连接的实例,也无法恢复
    密码

  • 当一个方法需要使用不希望存储的敏感参数多次调用时,是否有任何“标准范例”来处理这种情况


  • 提前感谢。

    您在初始化结束时缺少一个“:”