如何用java对数据加密,生成的密文是唯一的
答案:2 悬赏:50 手机版
解决时间 2021-01-25 12:03
- 提问者网友:轮囘Li巡影
- 2021-01-24 19:20
如何用java对数据加密,生成的密文是唯一的
最佳答案
- 五星知识达人网友:毛毛
- 2021-01-24 19:35
用户提供的是明文,数据库里面存储的是密文
不管怎么样,加密也好,解密也好,如果要比较相等性,这两个过程肯定要有一个,这个是没有选择的,需要提高性能的话只能做两点:
1、将用户的明文加密为密文后再与数据库中的比较,原因是这样只加密一次就可以,如果解密的话就要把数据库的密文全部解密,这是不现实的
2、在密文所在的列上建立索引,增加搜索速度,这个速度增长是很显著的,虽然会失去一些插入性能。
3、将对应的SQL写成存储过程。省去预编译的时间。这个速度的提高也是很明显的。
至于你说的“怎么能保证不一样得明文加密后生成不一样得密文”
MD5就可以
MD5有两个特性:
1、任意两段明文数据,加密以后的密文不会是相同的
2、任意一段明文数据,经过加密以后,其结果永远是不变的
网上MD5加密的类应该有写好的
大致上方法就是这样了,都做到的话应该没有问题了,不会影响你的性能的
不管怎么样,加密也好,解密也好,如果要比较相等性,这两个过程肯定要有一个,这个是没有选择的,需要提高性能的话只能做两点:
1、将用户的明文加密为密文后再与数据库中的比较,原因是这样只加密一次就可以,如果解密的话就要把数据库的密文全部解密,这是不现实的
2、在密文所在的列上建立索引,增加搜索速度,这个速度增长是很显著的,虽然会失去一些插入性能。
3、将对应的SQL写成存储过程。省去预编译的时间。这个速度的提高也是很明显的。
至于你说的“怎么能保证不一样得明文加密后生成不一样得密文”
MD5就可以
MD5有两个特性:
1、任意两段明文数据,加密以后的密文不会是相同的
2、任意一段明文数据,经过加密以后,其结果永远是不变的
网上MD5加密的类应该有写好的
大致上方法就是这样了,都做到的话应该没有问题了,不会影响你的性能的
全部回答
- 1楼网友:动情书生
- 2021-01-24 20:33
其实只要知道怎么加密的,不管是用c#写还是其他语言,都可以做解密。
一般的话可以用字节加密,比如读取的每个字节都加1,解密的时候再都减1就可以了,当然这种是最简单的加密。所以得看c#那边是怎么加密的啦
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯