
影刀RPA 流程凭证的安全管理加密存储与安全读取作者林焱什么情况用这个你在影刀流程里写死了数据库密码、API密钥、邮箱授权码。流程跑得挺顺利——直到有一天你把这个流程文件分享给了同事或者不小心上传到了公共网盘。密码写在代码里等于把家门钥匙放在门口地毯下面。你需要一套简单的凭证安全管理方案密码不写死在代码里、存储时加密、使用时解密、不泄露给不该看的人。怎么做拼多多店群自动化上架方案方案一环境变量最简单importos# 从系统环境变量读取db_passwordos.environ.get(RPA_DB_PASSWORD)api_keyos.environ.get(RPA_API_KEY)# 在Windows上设置环境变量# setx RPA_DB_PASSWORD 实际密码方案二加密配置文件fromcryptography.fernetimportFernetimportjson# 生成密钥只运行一次defgenerate_key():keyFernet.generate_key()withopen(D:/rpa_config/secret.key,wb)asf:f.write(key)print(密钥已生成)# 加密保存凭证defencrypt_credentials(credentials,key_pathD:/rpa_config/secret.key):withopen(key_path,rb)asf:keyf.read()fernetFernet(key)encryptedfernet.encrypt(json.dumps(credentials).encode())withopen(D:/rpa_config/credentials.enc,wb)asf:f.write(encrypted)# 解密读取凭证defload_credentials(key_pathD:/rpa_config/secret.key):withopen(key_path,rb)asf:keyf.read()fernetFernet(key)withopen(D:/rpa_config/credentials.enc,rb)asf:encryptedf.read()returnjson.loads(fernet.decrypt(encrypted).decode())# 使用credsload_credentials()db_passwordcreds[db_password]方案三Windows凭据管理器importkeyring# 存储keyring.set_password(RPA_DB,production,实际密码)# 读取db_passwordkeyring.get_password(RPA_DB,production)有什么坑坑一密钥文件和加密数据放在同一目录现象secret.key和credentials.enc在同一个文件夹攻击者拿到两个文件就能解密。解决密钥文件放在更高权限的目录或者用环境变量存储密钥路径。坑二加密密钥写死在代码里TEMU店群如何管理运营现象key就写在Python代码的注释里加密形同虚设。解决密钥和代码分离——密钥存储在文件系统、环境变量或凭据管理器中。坑三解密后数据在内存中明文存在现象解密后密码存储在Python变量中内存dump可以读出来。解决用完后将变量设为None避免长时间保留。更高级的做法用Python的bytearray用完zero-out。总结凭证安全的底线——密码不在代码里、密钥和密文分离。最简单的起步方案把密码放到系统环境变量里比写在代码里安全100倍。