用户提供的是明文,数据库里面存储的是密文
不管怎么样,加密也好,解密也好,如果要比较相等性,这两个过程肯定要有一个,这个是没有选择的,需要提高性能的话只能做两点:
1、将用户的明文加密为密文后再与数据库中的比较,原因是这样只加密一次就可以,如果解密的话就要把数据库的密文全部解密,这是不现实的
2、在密文所在的列上建立索引,增加搜索速度,这个速度增长是很显著的,虽然会失去一些插入性能。
3、将对应的SQL写成存储过程。省去预编译的时间。这个速度的提高也是很明显的。至于你说的“怎么能保证不一样得明文加密后生成不一样得密文”
MD5就可以
MD5有两个特性:
1、任意两段明文数据,加密以后的密文不会是相同的
2、任意一段明文数据,经过加密以后,其结果永远是不变的网上MD5加密的类应该有写好的大致上方法就是这样了,都做到的话应该没有问题了,不会影响你的性能的
不管怎么样,加密也好,解密也好,如果要比较相等性,这两个过程肯定要有一个,这个是没有选择的,需要提高性能的话只能做两点:
1、将用户的明文加密为密文后再与数据库中的比较,原因是这样只加密一次就可以,如果解密的话就要把数据库的密文全部解密,这是不现实的
2、在密文所在的列上建立索引,增加搜索速度,这个速度增长是很显著的,虽然会失去一些插入性能。
3、将对应的SQL写成存储过程。省去预编译的时间。这个速度的提高也是很明显的。至于你说的“怎么能保证不一样得明文加密后生成不一样得密文”
MD5就可以
MD5有两个特性:
1、任意两段明文数据,加密以后的密文不会是相同的
2、任意一段明文数据,经过加密以后,其结果永远是不变的网上MD5加密的类应该有写好的大致上方法就是这样了,都做到的话应该没有问题了,不会影响你的性能的
解决方案 »
- 准备自学JAVA ,希望前辈推荐书!
- hibernate中两个级联表,一个student表和一个book表,student表中有主键id,是book表中的外键;在用Student的类无法得到set集
- 请高手帮忙看下面得代码,这个问题怎么解决!
- SSH整合的头痛问题:The requested resource (/ssh/login.do) is not available
- ssh 开发,tomcat 报错
- spring错误
- Httpunit 解决 javascript 的问题
- Springmvc helloworld 总是404
- 大家推荐本struts的书给我吧,这种分不要白不要啊。
- struts问题,这么简单的代码也会出错呢
- 如何可以不重启服务器,更换国际化资源文件?
- JSF又出问题了...(关于h:commandButton的问题)
说的很对。虽然MD5有极小的可能发生碰撞,但那种几率非常低。
再次感谢!!