本人在开发一个网站,其中要求给想加入该网络的客户返回一个密码,由于涉及到商业利益,返回的密码不能有重复,还要能抵挡一定程度的攻击。虽然有现成的随机数生成函数,但那产生的只是伪随机数,远远不能满足要求;另外一方面,RSA,DES的实现又有一定的困难,大家一起来讨论讨论吧,也许能给我一定启发,在此先谢谢各位了!!

解决方案 »

  1.   

    去www.google.com
    或www.yahoo.com.cn搜一下,很多的
      

  2.   

    我已搜索过了,没什么有价值的信息。
    RSA,DES的资料只有教材上的描述而已,没有什么实际的指导意义。
      

  3.   

    搜索RSA EURO可以得到RSA,DES,SHS,MD5等算法的C语言源代码
      

  4.   

    以本地系统时间(至少秒级,最好精确到毫秒)为seed得到的随机数不行吗?
      

  5.   

    用md5算法可以产生128位的伪随即数序列,md5散列得很均匀,发生重复的概率极低。
      

  6.   

    用cocreateguid生成一个guid,128位,不会重复
      

  7.   

    首先听 stonespace(stonespace) 的
    用md5算法可以产生128位的伪随即数序列,md5散列得很均匀,发生重复的概率极低。然后再添加一个时间(这个应该不重复吧)还应该利用数据库进行重复检验
      

  8.   

    其实又一个极其简单的方法,保证绝对不重复,用一个简单的计数器,每分配一个密码给用户,计数器加一。可以把计数器的值直接作为密码给用户。如果嫌攻击者可以猜到密码的范围,可以用计数器的值合并系统时间得到128位数据,然后用des算法加密一次,加密结果作为密码提供给用户,攻击者就无法猜到密码的范围。但是前提是攻击者不知道des加密的密钥。
      

  9.   

    stonespace(stonespace)的方法比较可取。
      

  10.   

    “产生密码”和“使用密码加密”
    完全是两回事情。
    您到底要问哪一个呢?
    (1)“产生密码”只要生成一个随机数就可以了。
    随机数不会要求不重复,因为您还有唯一的用户名和密码一起验证。
    您可能会想到:
    呕~~会不会因为有相等的密码导致.......
    那么,您就又会要求:
    这个随机数不能是 1,否则....
    这个随机数也不能是 2,否则....
    这个随机数也不能是 3,否则....
    ......    ;)
    所以,避免重复是不必要的。(2)如果您要“用密码加密”
    我现在假定你已经有了一个随机(别人无法猜到)的密码。
    您可以使用DES RAS等标准的实现方法。
    看一看API中以Cryp开头的函数,或许对您有帮助.
    网络上也有源代码。