探讨一下加密数据库连接串的问题

buddhatarzan 2016-11-15 09:30:15
公司开发需要,要对数据库连接串进行加密,而且不能让开发人员看到。所以我设计了以下方案,希望大家给点意见。

服务器分为DB和APP,在APP上部署两个配置文件,config.xml和key.xml。
key.xml存储如下数据,并设置访问权限
<Encrypt>
<ENC ID="加密后的连接串">真实连接串</ENC>
...
</Encrypt>
<Key value="秘钥">
</key>
config.xml存储如下数据
<DBKEYS>
<KEY ID="开发人员调用的名称">加密后的连接串(同上ENC ID)</KEY>
...
</DBKEYS>
除了两个xml外,建立统一类库OracleOP.dll访问数据库,该类库只开放读取config.xml的KEY,这样开发人员就没法知道真实Production数据库的密码了。因为key.xml设置了访问权限,这样即使反编译,他也看不到key.xml的内容。

不知道这样可以不?
...全文
145 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你们开发能直接接触生产环境?那当我没说,能接触生产环境的话,你做什么都没用
buddhatarzan 2016-11-15
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
开发环境可以不考虑吧,默认微软NET框架就支持对配置节点进行加密,而且不需要更改获取配置的方法,所以你只需要对生产环境进行下加密就行了 具体你可以下个微软企业库,然后用工具就可以进行简单的加密,如果要通过证书的方式,那么就要用指令了 http://www.jb51.net/article/56543.htm
可是使用微软的加密方式,开发人员在debug时还是可以看到连接串的内容啊~
  • 打赏
  • 举报
回复
开发环境可以不考虑吧,默认微软NET框架就支持对配置节点进行加密,而且不需要更改获取配置的方法,所以你只需要对生产环境进行下加密就行了 具体你可以下个微软企业库,然后用工具就可以进行简单的加密,如果要通过证书的方式,那么就要用指令了 http://www.jb51.net/article/56543.htm
buddhatarzan 2016-11-15
  • 打赏
  • 举报
回复
补充一下,如果开发人员使用不正当手段获知密码不在考虑范围内~
CGabriel 2016-11-15
  • 打赏
  • 举报
回复
如果是 MS SQL Server ,用 windows 验证就不用考虑这么多了。。

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧