java数据库密码加密
可以通过其它方法来实现:
1:如果没用框架,直接加密、解密即可
2:如果用hibernate之类,可以绕过Configuration,读取Hibernate配置文件解密后再连接数据库
3:考虑集群影响
‘贰’ 如何用java对数据加密,生成的密文是唯一的
用户提供的是明文,数据库里面存储的是密文
不管怎么样,加密也好,解密也好,如果要比较相等性,这两个过程肯定要有一个,这个是没有选择的,需要提高性能的话只能做两点:
1、将用户的明文加密为密文后再与数据库中的比较,原因是这样只加密一次就可以,如果解密的话就要把数据库的密文全部解密,这是不现实的
2、在密文所在的列上建立索引,增加搜索速度,这个速度增长是很显着的,虽然会失去一些插入性能。
3、将对应的sql写成存储过程。省去预编译的时间。这个速度的提高也是很明显的。
至于你说的“怎么能保证不一样得明文加密后生成不一样得密文”
MD5就可以
MD5有两个特性:
1、任意两段明文数据,加密以后的密文不会是相同的
2、任意一段明文数据,经过加密以后,其结果永远是不变的
网上MD5加密的类应该有写好的
大致上方法就是这样了,都做到的话应该没有问题了,不会影响你的性能的
‘叁’ java web开发用户注册时密码加密一般用什么技术
MD5加密,这是一种不可逆的加密算法,即一旦进行MD5加密算法,不能再得到原始的密码x0dx0a x0dx0a开发者可以将用户输入的密码进行MD5加密后,再与数据库中存储的加密后的密码比较,即可知道密码的准确性。x0dx0a x0dx0a若想找回密码,一种即可以重置密码,即有一个默认的密码。重置后,可以自己再修改密码;另一种即可以通过其他方面的验证后,来录入一个新密码。现在很多都是使用邮箱验证或是手机随机验证,验证成功后,可以设置新密码
‘肆’ java web 项目关于数据库加密问题!请高手解答
这个有几个思路:
一个是本身项目文件应该有访问权限限制,生产环境的系统不应让开发人员可以察看,开发环境和生产环境应分开。
如果不能分开,还有个方法是用J2EE服务器容器提供数据库Datasource,应用程序直接从web容器获取,不需要提供用户名密码。
还有一个方法,配置数据库服务器限制用户只能从Web容器IP连接,这样甚至可以不需要密码。
‘伍’ 用java实现对数据库文件的加密
自己编写一个加密算法,或者在网上找一个MD5的加密算法,把密码加密后再存入数据库,取的时候解密下就可以了
‘陆’ java语言实现密码加密
一般只有加密码过程,没有解密。
用户登陆时,把他输入的密码经过加密
再拿去与数据库里面的密码比较就可以了。
修改密码也是一样的原理,输入的原密码加密后与数据库密码比较,符合的话再将新密码加密后存入数据库覆盖原密码
现在流行的MD5加密算法 网上有很多JAVA的MD5算法
‘柒’ javajdbc连接mysql数据库如何实现用户名密码以及传输数据的加密
如果jdbc和mysql都支持 SSL那通过配置就可以了
如果不支持,那也可以自己来实现。
实现思路:
1、在数据库的主机上运行一个java服务,用来转发数据这个服务我们成为A服务
2、客户端并不直接访问数据库,而访问A服务,客户端和A服务之间的传输代码由用户自己完成,当然可以加密。走套接字,走http,或者其他什么都是可以的。
‘捌’ java 给密码字段加密
要是你想做得正规些,MD5或SHA1就是最好的选择了。它们至今都还十分安全。没发现有比这两者更好的解决方案。
MD5就是MD5,是一种算法,公开的,唯一的,没有安全的版本和普通的版本之分。大家用的MD5都是一样的。请始终记住,公开的才是安全的。密码学中都有讲的。
为了安全,你可以在MD5加密时,加些盐。举个例,将用户名,密码,和自定义的一些字符串连起来,然后再进行MD5计算。如:MyUsernameMyPasswordSalt。这么长的串是不容易破解的。你甚至可以连续使用两次MD5。
如果你光是对密码MD5加密,则网上有专门的破解工具,对于位数比较小的密码,极易破解,甚至秒杀。。
‘玖’ 如何配置数据库密码加密访问数据库
问题解决思路:将配置文件用户相关的信息(例如:密码)进行加密使其以密文形式存在,进行初始化连接池的时候进行解密操作,达到成功创建连接池的目的。Tomcat默认使用DBCP连接池(基于common-pool的一种连接池实现),可在下载commons-dbcp源码包commons-dbcp-1.4-src.zip,对org.apache.commons.dbcp.BasicDataSourceFactory类修改,把数据库密码字段(加密后的密文)用解密程序解密,获得解密后的明文即可。具体实现:1.修改org.apache.commons.dbcp.BasicDataSourceFactory类文件找到数据源密码设置部分value=properties.getProperty(PROP_PASSWORD);if(value!=null){dataSource.setPassword(value);}修改为:value=properties.getProperty(PROP_PASSWORD);if(value!=null){dataSource.setPassword(Encode.decode(value));}将配置文件中的“密码”(加密后的结果)取出,调用加解密类中的解密方法Encode.decode(value)进行解密。2.加密类Encode.java,本例中使用加密解密模块比较简单只是用来说明问题,密文为明文的十六进制串。publicclassEncode{//编码-普通字符串转为十六进制字符串publicstaticStringencode(Stringpassword){Stringresult=“”;byte[]psd=password.getBytes();for(inti=0;ipassword696e65743231urljdbc:oracle:thin:@127.0.0.1:1521:orcldriverClassNameoracle.jdbc.driver.OracleDriverusernamewanfang4.将修改后的BasicDataSourceFactory.java和新添加的Encode.java编译后的class类文件重新打包进commons-dbcp-1.4.jar,将该包拷贝进tomcat下的common/lib目录中,重启tomcat。此时tomcat下部署的应用在连接数据源的时候都可以在不暴露密码明文的情况下进行连接。转载,仅供参考。
‘拾’ Java中怎么把密码加密!
MD5很简单,有专门的类,自己定义一个加密用的saltKey。
还有自己写简单的加密解密可以用异或算法,一个字符串于某字符异或就加密了,再与这个字符异或又解密了。很简单的算法。不过比较容易破解