Chinaunix

标题: DBI数据库连接用户密码加密问题 [打印本页]

作者: yangds_cu    时间: 2009-12-09 12:54
标题: DBI数据库连接用户密码加密问题
在用DBI模块的connect方法连接数据库时,有没有方法不使用明文写入用户名和密码的?如何实现?谢谢!
my $dbh = DBI->connect("DBI:Informix:szxa","$user","$passwd") || die "Database connection not madeDBI::errstr";

作者: 兰花仙子    时间: 2009-12-09 13:57
中间件~
作者: yangds_cu    时间: 2009-12-09 16:10
仙子能否说详细点?多谢!
作者: 兰花仙子    时间: 2009-12-09 16:13
原帖由 yangds_cu 于 2009-12-9 16:10 发表
仙子能否说详细点?多谢!

简单的说,如果是本机连本机的数据库,加不加密都无所谓吧~
你需要加密,是因为密码在网络上传输~
如果数据库自身不支持SSL连接的话,那么就使用中间件来进行加密和认证.
作者: 撒哈拉里的鱼    时间: 2009-12-09 16:25
他的意思是怕密码写在代码中被人看见。
一般来说,没有很好的解决办法。你可以把密码写到二进制的文件中,然后perl通过一定的算法去获取密码,但是这个依旧是一个纸做的盾牌。
作者: DQP    时间: 2009-12-09 16:50
1. 启动时手工输入密码.....
作者: yangds_cu    时间: 2009-12-09 16:54
标题: 回复 #5 撒哈拉里的鱼 的帖子
对,我就是这个意思。目前我就是把密码简单加密以后存放在配置文件里面,连接的时候再解密,但是这样实际上没什么太大的作用,稍微懂一点perl的人一看就明白了。目前真没什么好的方法吗?
作者: yangds_cu    时间: 2009-12-09 16:56
标题: 回复 #6 DQP 的帖子
这个方法可以保证账号密码的安全,但是使用起来就不大方便了,呵呵~
作者: ulmer    时间: 2009-12-09 17:44
原帖由 yangds_cu 于 2009-12-9 16:54 发表
对,我就是这个意思。目前我就是把密码简单加密以后存放在配置文件里面,连接的时候再解密,但是这样实际上没什么太大的作用,稍微懂一点perl的人一看就明白了。目前真没什么好的方法吗?


目前没什么好的方法,通常是把密码存放在配置文件里面,配置文件只让执行程序(或特定的uid)可读。
作者: wfnh    时间: 2009-12-09 19:31
权限中心之类的?
作者: billypeng    时间: 2009-12-09 22:13
有一种方法可以对perl源代码加密,也不是很难,加一个库即可。这种方法可以阻止很多人查看数据库密码。

不过对于perl高手来说(懂内部的工作过程),仍然不行,毕竟加密后的perl代码必须还原才能执行。高手会在还原后,获得perl代码。
所有的解释性语言都有这个问题吧。php的加密也是可以解的,java程序的二进制代码也是可以解的。
作者: 无碍不自在    时间: 2009-12-10 19:07
友情帮顶
作者: sinall    时间: 2010-02-06 12:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: Ray001    时间: 2010-02-06 17:37
用C写一个加密解密的程序,perl用system调用就行。
作者: leal402    时间: 2010-02-06 17:57
perlcc
作者: leal402    时间: 2010-02-06 18:34
perlcc
leal402 发表于 2010-02-06 17:57



    突然感觉用perlcc还是不能解决问题。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2