博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实现配置文件的加密(模板)
阅读量:3917 次
发布时间:2019-05-23

本文共 1593 字,大约阅读时间需要 5 分钟。

import base64import sys,osfrom Crypto import Randomfrom Crypto.Cipher import AESimport configparserfile_path = os.path.realpath(__file__)bin_path = os.path.split(file_path)[0]base_path = os.path.split(bin_path)[0]con_path = base_path + os.sep + 'config'config=configparser.ConfigParser()config.read(con_path+"/conf.config")# 加密函数def encrypt(originalPassword):    bs = AES.block_size    pad = lambda s: s + (bs - len(s) % bs) * chr(bs - len(s) % bs)    paddPassword = pad(originalPassword)    iv = Random.OSRNG.new().read(bs)    key = os.urandom(32)    cipher = AES.new(key, AES.MODE_CBC, iv)    encryptPassword = base64.b64encode(iv + cipher.encrypt(paddPassword) + key)    return encryptPassword# 解密函数def decrypt(encryptPassword):    base64Decoded = base64.b64decode(encryptPassword)    bs = AES.block_size    unpad = lambda s: s[0:-s[-1]]    iv = base64Decoded[:bs]    key = base64Decoded[-32:]    cipher = AES.new(key, AES.MODE_CBC, iv)    originalPassword = unpad(cipher.decrypt(base64Decoded[:-32]))[bs:]    return originalPasswordif __name__ == '__main__':#   oracle数据库加密    oraPwd =config.get('targetddb','pass')    encryptOraPwd = encrypt(oraPwd)    config.set("targetddb", "pass", encryptOraPwd.decode(encoding='UTF-8',errors='strict'))    print("The Oracle database password has been encrypted!")#   服务器加密    serPwd = config.get('getfile', 'password')    encryptSerPwd = encrypt(serPwd)    config.set("getfile", "password", encryptSerPwd.decode(encoding='UTF-8',errors='strict'))    print("The server password has been encrypted!")    config.write(open(con_path+"/conf.config", "w"))

 

转载地址:http://zctrn.baihongyu.com/

你可能感兴趣的文章
年终将至,回顾我们一起走过的 2020
查看>>
开源·共享·创新|2020年中国.NET开发者大会圆满收官!
查看>>
C# 9 新特性——init only setter
查看>>
什么是ASP.NET Core静态Web资产?
查看>>
如何在 C# 中使用 反射
查看>>
银河麒麟V10入选2020中国十大科技新闻
查看>>
Windows Terminal 新手入门
查看>>
IdentityServer4 之Client Credentials走起来
查看>>
腾讯公测云开发低码!实战评测
查看>>
.NET 5 开源工作流框架elsa技术研究
查看>>
C#-WinForm跨线程修改UI界面
查看>>
Amazing 2020
查看>>
代码改变世界,也改变了我
查看>>
【Git】Git-常用命令备忘录(一)
查看>>
2021,未来可期
查看>>
阿星Plus:基于abp vNext开源一个博客网站
查看>>
写给自己,2020的年终总结
查看>>
使用 ML.NET 识别乐高颜色块
查看>>
Flash 生命终止,HTML5能否完美替代?
查看>>
ML.NET生成器带来了许多错误修复和增强功能以及新功能
查看>>