首页 新闻 会员 周边

关于加密的问题

0
悬赏园豆:15 [已解决问题] 解决于 2010-08-27 16:59

在网上看得的加密方法,
过程
先有一个随机私有字符串,
在随机字符串和密码串联,然后MD5一次
再取其中8位再与密码串联起来在MD5一次 得到最后密码

我想问一下,这个私有字符串,那肯定要固定的么?
如果我临时改变了私有字符串。那之前已经加密的是怎么能匹配得上?

我自己的观点是如果改变私有字符串的话,那个之前生成的密码是肯定不能匹配的。但是如果这样,为什么还要把字符串做全局数存储?我想不同这个为什么?如果不允许改变的话,直接写死不是很好么,但是他没有写死,而是做一个变量存储了。

piaopiaoran的主页 piaopiaoran | 初学一级 | 园豆:133
提问于:2010-08-27 15:57
< >
分享
最佳答案
0

变没有关系,可以连"随机私有字符串"和密码一起存入库中,当要验证密码的时候,通过从库中去取这个"随机私有字符串",然后再做验证.

所以,你得看它这个变量的值是从哪里来的?

收获园豆:10
Launcher | 高人七级 |园豆:45045 | 2010-08-27 16:04
问题是,如果我之前用的随机私有字符串是 abc 用他来生产了密码 aaaaaaa; 现在我的随机私有字符串已经更换成efg了。 还可能用来验证 之前产生的密码 aaaaaaa 么?
piaopiaoran | 园豆:133 (初学一级) | 2010-08-27 16:08
@sunnylu28:不能。
Launcher | 园豆:45045 (高人七级) | 2010-08-27 16:27
也就是说,那个随机生成的随即字符串一定是要保存起来的,而且每个用户的随机串是不同的。然后验证登录的时候,要先把这个指定用户的随即字符串获取出来,然后在和用户输入的密码进行加密匹配,进行运算,是这样么? 不知道这样的思路加密起来安全性怎么样???
piaopiaoran | 园豆:133 (初学一级) | 2010-08-27 16:36
@sunnylu28:对,就这样,要保存起来,事实上你这种思路,是使用了加/解密中的SALT模式,你那个“随机私有字符串”就是SALT,只是使用SALT的方式比较简单,你可以参看这篇文章:http://www.ibm.com/developerworks/cn/linux/l-md5crypt/
Launcher | 园豆:45045 (高人七级) | 2010-08-27 16:45
@sunnylu28:再来一篇文章,http://www.ibm.com/developerworks/cn/security/pass1/index.html
Launcher | 园豆:45045 (高人七级) | 2010-08-27 16:52
谢谢。
piaopiaoran | 园豆:133 (初学一级) | 2010-08-27 16:58
其他回答(2)
0

MD5不可逆的,所以你加密的随机字符串和当前密码要记住,不然就杯剧了。

Astar | 园豆:40805 (高人七级) | 2010-08-27 16:33
0

给你个思路,没有必要那么麻烦,你把用户设定的密码进行MD5加密或者用DES进行加密,然后存放到数据库,当用户进行登录时,把用户输入的密码在进行MD5加密或者DES加密,就可以判定是否是合法用户。

像你上面写的:问题是,如果我之前用的随机私有字符串是 abc 用他来生产了密码 aaaaaaa;现在我的随机私有字符串已经更换成efg了。还可能用来验证 之前产生的密码 aaaaaaa 么?

你这种思路就是有问题。

收获园豆:5
love_99 | 园豆:325 (菜鸟二级) | 2010-08-27 16:33
我之前是这么做的,但是我就是觉得太简单了,我要更复杂的,让破解的人想到头疼去!!
支持(0) 反对(0) piaopiaoran | 园豆:133 (初学一级) | 2010-08-27 16:41
而且我还要把,整个加密函数混淆。等处理,反编译也很难知道我的加密函数是怎么样的。
支持(0) 反对(0) piaopiaoran | 园豆:133 (初学一级) | 2010-08-27 16:43
那你自定义加密算法,对应键盘上的每个键进行组合啊;比如:A:你可以编码成11122A,用的时候进行解码。这种方法最适合你,不妨你试试。
支持(0) 反对(0) love_99 | 园豆:325 (菜鸟二级) | 2010-08-27 16:51
嗯,谢谢
支持(0) 反对(0) piaopiaoran | 园豆:133 (初学一级) | 2010-08-27 16:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册