gzip' ed字符串的唯一性

时间:2014-09-29 20:22:53

标签: c# string compression gzip unique

这是我的压缩算法,取自SO:

的某处
 var bytes = Encoding.Unicode.GetBytes(s);
 using (var msi = new MemoryStream(bytes))
 {
    using (var mso = new MemoryStream())
    {
       using (var gs = new GZipStream(mso, CompressionMode.Compress))
       {
          msi.CopyTo(gs);
       }
       return Convert.ToBase64String(mso.ToArray());
    }
 }

给定一组唯一字符串,我是否可以完全确定输出字符串是否也是唯一的?

1 个答案:

答案 0 :(得分:3)

是。对于每个唯一输入,任何可逆算法的输出必须是唯一的。这样考虑:如果两个输入产生相同的输出,那么你怎么能解压缩呢?

有了这样说:你是否试图用这种方式来散列数据?如果是这样,这可能是一种非常低效的方法。如果您没有真正压缩数据,请不要使用压缩算法。你想做什么?