本帖最后由 hack_pan 于 2012-06-27 17:32:04 编辑

解决方案 »

  1.   

    没人会吗? 或者给点思路……
      

  2.   

    不可能,因为明文集合(15个0到15个9)与密文集合(9个0到9个9)这两个有限集的个数不相等,所以它们之间不存在一个一一映射。
      

  3.   

    自己定义一种格式吧。你就是这个编码的创造者
      

  4.   


    对,就想不出,要怎么编码,才能满足
      

  5.   

    这是纯数学问题,你去找个数学高手问问
      

  6.   

    我记得加密里面 有什么办法,可以把很长的 二进制  运算为 很短的 二进制(还能反向解密)就像 无论多长的字符串 md5后 都是32位
      

  7.   

    md5那不叫加密那是哈希,不能进行逆运算15位数字转9位那明显放不下嘛,我看啥算法也不行,至少不是所有的都能转,如果是里面数字重复很多还可以想点办法
      

  8.   


    就是一个抽屉原则的问题。你想想,15个0到15个9一共10^15个数字,9个0到9个9一共才10^9个。如果把前者加密成后者,由于密文集合的容量小于明文集合的容量,所以肯定存在两个明文。它们对应的密文是一样的,于是由这个密文无法就解密唯一的明文。
      

  9.   


    嗯 说的对 我只是表达那个意思,md5散列算法哈希算法我也想了 类似压缩的方式 11111000----5130 压缩成这样的方式,但是,15位是订单号,重复性很少
    唉,郁闷!~~
      

  10.   


    看样是不行了,谢谢大家赐教,结贴!
      

  11.   

    啊哦你说的那个是 短域名算法 自己看去吧