想写一加解密的方法,具体要求就是能够将一组数据加密为可显示的数字串,然后需要时再还原
例:
源数据: "在工右中"
加密后: "123456789"
还原:   "在工右中"我有一想法,利用DES加密后的数据(都是些乱七八糟的了)转换为数字串(这个转换是双向的),这种方法虽然可行,但不知如何才能用最少的数字串表示尽可能多的DES加密数据(如果取DES加密数据的ASCII码那就太长了,一字节得用3个数字串来表示,那一个DWORD的数据得用12位数字了)

解决方案 »

  1.   

    使用BASE64编码,增大1/3。即每3个字节变成4个字符,应该算是最省的了。
      

  2.   

    哦,sorry,说错了,BASE64是可见字符串,不仅仅是有数字。
    如果只用十进制数字,那太浪费了。
      

  3.   

    不可能,你想想,从编码的角度来看,这样是会丢失数据的
    所以要么表示字符集大,要么加密结果长,或者他们的折中(DES)只可能是这样
      

  4.   

    其实关键是如何完成
    源数据: "在工右中"
    加密后: "123456789"
    还原:   "在工右中"
    而用最少的数字串表示"在工右中"DES都可暂不考虑
    我见过一产品,他用32至36个数字字符表示了一个28字节的结构体,当然是可以完成转换功能的