这是我的压缩算法,取自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());
}
}
给定一组唯一字符串,我是否可以完全确定输出字符串是否也是唯一的?
答案 0 :(得分:3)
是。对于每个唯一输入,任何可逆算法的输出必须是唯一的。这样考虑:如果两个输入产生相同的输出,那么你怎么能解压缩呢?
有了这样说:你是否试图用这种方式来散列数据?如果是这样,这可能是一种非常低效的方法。如果您没有真正压缩数据,请不要使用压缩算法。你想做什么?