我需要将一些参数分组为一个简短的,不可预测的,可拼写的代码。例如:
压缩代码可能如下所示: 3xy9b0laiph3s
我的目标是尽可能缩短代码(当然不会丢失任何信息)。该算法也必须易于在其他语言中实现(因此它不能具有疯狂的特定依赖性)。有什么想法吗?
答案 0 :(得分:1)
大多数情况下,这是通过将数据存储在某处并创建ID然后进行压缩和使用来处理的。该系统最常见的用户是短网站。
代码:
$id = 23590;
print $id;
$hash = base_convert($id, 10, 32);
print $hash;
$id = base_convert($hash, 32, 10);
print $id;
答案 1 :(得分:1)
对于任意短字符串,没有足够的信息来应用广义预测压缩方法。
您需要利用数据的已知功能。
示例:
这是104位,可以是Base64编码为18个字符
请注意,序列号通常具有一两个校验和字符。如果您知道如何计算校验和,则可以省略此字符并在解码时重新计算。这可以为你节省一个Base64数字。
如果你想让结果不那么可预测,而不用担心加密很重,你可以确定地改组你的编码字符串。
答案 2 :(得分:0)
UUencode或Base64,但在这些编码案例中是匹配的。最终你可以为你的目的编辑这些编码(只有小写字母)。如果您拥有完全相同的数据量,这将是最简单的解决方案。但不是最小的一个。