由于纯文本的配置文件有数据库链接等敏感信息,
考虑到安全方面,配置文件不想被第三方使用软件编译版本的人看到配置,需要将配置文件加密。
项目使用了python 的SafeConfigParser 库
在使用它读写配置文件时需要用到BytesIO 做临时存储
1 、读取加密的配置
例如:调用readfp()函数解析配置文件时 需要传一个文件句柄,但是配置文件是加密过的,所以需要先解密,这里会用到BytesIO 将解密后的文件内容放入BytesIO("解密后的字符串"),然后再将bytesio对象放入readfp中读取解密后的配置。
2、写入修改后的配置
在上一步骤中,读取到了配置,然后在代码中修改了配置, 比如set('redis', 'xxxx', 3333) ,需要将新增的配置项加密后存入配置文件,这里也会用到BytesIO, 写入的大致流程如下:
python 操作后的数据在内存中,调用config parser的write方法写入文件,这个write方法写入的是纯文本格式,所以我们需要先将内存中的纯文本写入bytesIO,然后再将bytesio 中的字符串加密,得到加密后的字符串使用系统函数write到配置文件。
需要注意的是configparser.write 方法写入bytesio时,bytesio.getvalue() 能得到数据,read()得不到数据。
另一个话题就是AES了,关于AES对称加密很多文章
推荐 http://www.cnblogs.com/kaituorensheng/p/4501128.html
领取专属 10元无门槛券
私享最新 技术干货