最近用DES加密字符串,发现超过一定长度以后 密文的前半段都会一模一样。
因为我要加密的字符串都差不多,只是中间后边有点变化。比如: 
原文:00993dd51655fe65b0ebeece02289fab
密文:D8F5882C8CDE8E9664169FA425DD7BDB10B4F480AF6C0ABDE65DAE7336E4CA28原文:00993dd51655fe65b0ebeece02289fab1
密文:D8F5882C8CDE8E9664169FA425DD7BDB10B4F480AF6C0ABDE65DAE7336E4CA28594E1C617FBA1EAB原文:00993dd51655fe65b0ebeece02289fab1a
密文:D8F5882C8CDE8E9664169FA425DD7BDB10B4F480AF6C0ABDE65DAE7336E4CA28A7C492058E2BA7CA自己用BASE64 异或一类的算法再加密 他的前半段也会固定不变。
难道对称加密的效果都是这样?谁能介绍或提供 一个简单地算法,能让原字符串相差一个字节也会拿密文看起来是乱的算法呢?
对加密强度没有要求,因为只要满足让密文不要太相似的效果就行了谢谢了

解决方案 »

  1.   

    百度一下ecc看看 谢谢
    继续等待答案
      

  2.   

    试试 先对字符串做个md5  然后将md5值和你加密的密码结合起来当作新的密码
      

  3.   

    可以用的上呀,你这样想:
    比方说
    源码:
    AAAAAAAA
    MD5码:
    fbb1b72de6c60bd8316568543571e6d2
    这个MD5值保存即可
    //----------------------------------------------
    检测方法:
      if MD5(用户输入的源码)='fbb1b72de6c60bd8316568543571e6d2' then
         进入系统
       else
         提示信息
      

  4.   

    可以用的上呀,你这样想:
    比方说
    源码:
    AAAAAAAA
    MD5码:
    fbb1b72de6c60bd8316568543571e6d2
    这个MD5值保存即可
    //----------------------------------------------
    检测方法:
      if MD5(用户输入的源码)='fbb1b72de6c60bd8316568543571e6d2' then
         进入系统
       else
         提示信息
      

  5.   

    可以用的上呀,你这样想:
    比方说
    源码:
    AAAAAAAA
    MD5码:
    fbb1b72de6c60bd8316568543571e6d2
    这个MD5值保存即可
    //----------------------------------------------
    检测方法:
      if MD5(用户输入的源码)='fbb1b72de6c60bd8316568543571e6d2' then
         进入系统
       else
         提示信息
      

  6.   

    不需要那么麻烦, 在偶数位嵌入一个随机字符再BASE64就每次都不一样了。
    或者在固定位置,不需要所有偶数位。。
      

  7.   

    用DES这类的对称加密算法 加密出来的前半段都会相似 
    这个跟你用什么密码多长的密码没什么关系
    10楼的方法 可以 感觉密文得双倍大了吧有人写过类似的没?能直接贴点代码么
    谢谢 再顶 等答案
      

  8.   

    des是分组加密的,整组的源数据相同,结果肯定也相同了——key一样的前提下
    我实现过几个个结果完全不同的加密算法,只是现在还不想公开10楼的办法应该也可以了
    不想长度倍增,可以每组插一个,des的一组好像是7个字节
      

  9.   

    如果在偶数位插字符感觉长的话,可以先将原文MD5加密后再DES,这样就固定长度了
      

  10.   

    如果你是最终验证者,存md5是足够了
    但是,有时候,需要自动把密码向其它服务器做登录验证的
    还有些情况,是需要使用源信息的,仅仅md5就不够了