探讨:随机数生成算法 本人在开发一个网站,其中要求给想加入该网络的客户返回一个密码,由于涉及到商业利益,返回的密码不能有重复,还要能抵挡一定程度的攻击。虽然有现成的随机数生成函数,但那产生的只是伪随机数,远远不能满足要求;另外一方面,RSA,DES的实现又有一定的困难,大家一起来讨论讨论吧,也许能给我一定启发,在此先谢谢各位了!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 去www.google.com或www.yahoo.com.cn搜一下,很多的 我已搜索过了,没什么有价值的信息。RSA,DES的资料只有教材上的描述而已,没有什么实际的指导意义。 搜索RSA EURO可以得到RSA,DES,SHS,MD5等算法的C语言源代码 以本地系统时间(至少秒级,最好精确到毫秒)为seed得到的随机数不行吗? 用md5算法可以产生128位的伪随即数序列,md5散列得很均匀,发生重复的概率极低。 用cocreateguid生成一个guid,128位,不会重复 首先听 stonespace(stonespace) 的用md5算法可以产生128位的伪随即数序列,md5散列得很均匀,发生重复的概率极低。然后再添加一个时间(这个应该不重复吧)还应该利用数据库进行重复检验 其实又一个极其简单的方法,保证绝对不重复,用一个简单的计数器,每分配一个密码给用户,计数器加一。可以把计数器的值直接作为密码给用户。如果嫌攻击者可以猜到密码的范围,可以用计数器的值合并系统时间得到128位数据,然后用des算法加密一次,加密结果作为密码提供给用户,攻击者就无法猜到密码的范围。但是前提是攻击者不知道des加密的密钥。 stonespace(stonespace)的方法比较可取。 “产生密码”和“使用密码加密”完全是两回事情。您到底要问哪一个呢?(1)“产生密码”只要生成一个随机数就可以了。随机数不会要求不重复,因为您还有唯一的用户名和密码一起验证。您可能会想到:呕~~会不会因为有相等的密码导致.......那么,您就又会要求:这个随机数不能是 1,否则....这个随机数也不能是 2,否则....这个随机数也不能是 3,否则.......... ;)所以,避免重复是不必要的。(2)如果您要“用密码加密”我现在假定你已经有了一个随机(别人无法猜到)的密码。您可以使用DES RAS等标准的实现方法。看一看API中以Cryp开头的函数,或许对您有帮助.网络上也有源代码。 windbg反汇编问题 [求助]怎样实现无线上网卡的按需连接? 关于listctrl排序 如何清空socket缓冲区里的数据? 大家帮帮说一下怎么用5行代码搞定 Unicode to ANSI 如何使能和禁止工具条的工具提示 比较复杂的图形绘制系统,有点类似画图板,要求结合COM组件完成,各位给点思路,谢谢! ***CSDN出乱子了*** 求助:olelink错误 估计能回答的人不多了 请问现在市面上的visual studio.net中文版有没有正式版的?正式版的要几张盘? 请教高手关于CListCtrl中列表自定义排序的问题!
或www.yahoo.com.cn搜一下,很多的
RSA,DES的资料只有教材上的描述而已,没有什么实际的指导意义。
用md5算法可以产生128位的伪随即数序列,md5散列得很均匀,发生重复的概率极低。然后再添加一个时间(这个应该不重复吧)还应该利用数据库进行重复检验
完全是两回事情。
您到底要问哪一个呢?
(1)“产生密码”只要生成一个随机数就可以了。
随机数不会要求不重复,因为您还有唯一的用户名和密码一起验证。
您可能会想到:
呕~~会不会因为有相等的密码导致.......
那么,您就又会要求:
这个随机数不能是 1,否则....
这个随机数也不能是 2,否则....
这个随机数也不能是 3,否则....
...... ;)
所以,避免重复是不必要的。(2)如果您要“用密码加密”
我现在假定你已经有了一个随机(别人无法猜到)的密码。
您可以使用DES RAS等标准的实现方法。
看一看API中以Cryp开头的函数,或许对您有帮助.
网络上也有源代码。