基于C#实现数据库连接字符解密工具

0x01 背景

.NET安全矩阵群有位师傅问起web.config里数据库连接字符串被编码加密,如何解密得到原始字符串.

基于C#实现数据库连接字符解密工具

之前星球和群里也分享过一些关于webconfig加解密的方法,但还有一类通过DESCryptoServiceProvider类实现对称加解密方式,今天我们就来聊一聊此类场景下的解密

1.1 基本原理

通过DESCryptoServiceProvider实现对称加密,常见的私钥数据加密时需提供8位长度的key,当解密时需反编译或配置文件里找到key,即可还原文本内容。如果还原失败可能的原因在于使用IV偏移了初始化向量,工具代码实现如下

基于C#实现数据库连接字符解密工具

1.2 使用方法

解密命令如下:SharpofDecryptWebconfig.exe -Dec 加密的连接字符串 自定义8位长度的密钥

SharpofDecryptWebconfig.exe -Dec B6P3WI+PnYVgqe14RevoL7iZ+ULeDITsH2BzmvCsjwYo6RerAShpTSDRyVN9HrAc1FXlj+fPqio= 12345678

基于C#实现数据库连接字符解密工具

加密命令改成:SharpofDecryptWebconfig.exe -Enc

SharpofDecryptWebconfig.exe -Enc server=.;Database=MSSQL;User ID=sa;Password=123456 12345678

基于C#实现数据库连接字符解密工具

工具已打包感兴趣的师傅可以自行研究测试。