将字符串转换为数字和/或字母串,然后反向工程到原始字符串的最快和最佳性能方法是什么.类似于将字符串转换为哈希码,但这是单向转换.我需要一种双向方法.我正在创建一个简单的网址短片服务,我不想处理数据库.
我通过私钥考虑了MD5加密/解密,但我想还有另外一种可能在性能上更好的方法.
如果加密/解密是要走的路,那么处理器上哪个最容易?
谢谢!
加密时,不要缩短任何内容.密文与明文的长度大致相同.但是,如果使用加密哈希,则将字符串缩短为哈希长度.缺点是您不再能够将哈希值反转回原始字符串.我认为您既不能使用加密算法也不能使用加密哈希函数来创建URL缩短器.如果可能,您可以实现无限或至少非常高的信息压缩.
您需要的是无损压缩算法.我的意思是,这是你能够压缩文本的唯一方法,也能够解压缩它.
当然,压缩时弦长会有所不同.平均而言,长度不会像tinyurl使用的Base64 ID那么小.他们能够做到这一点,因为他们将ID和URL存储在数据库中.
不过,这里有几个选项......
如果你走这条路,我会创建一个小的控制台应用程序来测试所有这些的性能.如果您有RAM,将结果缓存到Dictionary中甚至是值得的,这样您就不必为每个请求不断压缩和解压缩URL.
UPDATE
有一个名为smaz的库,它显然是为压缩小字符串而设计的......
它可以很好地压缩URLS:
" http://google.com "压缩了59%
" http://programming.reddit.com "压缩了52%