我只是做到这地步了:
加密后的字符数是原明码的2倍。
通过单数位的字符可以求得以上代码的seed的值。
但是,seed是被取整得来的:
seed = Int(94 * Rnd(-Asc(Mid(preString, i, 1)) - seed * Asc(Right(preString, 1))) + 32)
但是,被去掉的位数是什么怎么搞定呢?求求各位了!!

解决方案 »

  1.   

    这个应该是可以解的,因为它用到RND的伪随机函数,
    这说明了它每次取出来的数值是固定的。
    由于现在已经太晚了,先睡了,明天再帮你看一下
      

  2.   

    今天告诉大家一个正确的回答,就是这段加密算法不可以反成明码,
    理由如下,
    把CHR(13)传到函数里得到的结果是8U
    把CHR(82)传到函数里得到的结果也是8U
    这说明了,明码与密码不是一一对应的关系,
    而是明码的范围广,密码的范围小。
    所以想把密码还原成“原来”的密码是不可能的,
      

  3.   

    CMOS密码还不唯一呢;只是个转成明码,也没有说一定要是原来的那个啊;