使用噪声填充进行编码/加密的名称是什么?

时间:2012-07-31 02:42:13

标签: encryption

我希望代码以n + x位呈现n位,非顺序。我谷歌它,但我的谷歌不工作因为我不知道它的用语。

例如,第一列(2位)中的输入值可能被编码为下面逗号分隔的第二列(4位)中的任何输出值:

 0  1,2,7,9
 1  3,8,12,13
 2  0,4,6,11
 3  5,10,14,15

我的目标是获取整数ID列表,并以仍可用于持久URL的方式对其进行转换,但不能按顺序迭代/枚举,以及客户端无法以编程方式确定URL的位置之前已访问过搜索结果集而未再访问它。

1 个答案:

答案 0 :(得分:1)

我将这个过程称为“编码”。您将看到类似的操作,以允许使用具有数据中不允许的特殊符号的通信通道。示例:uuencoding和base64编码。

那就是说,你仍然需要(并且乍一看)确保只有一个正确的解码;并接受输出大小的增加(在上面的情况下,输出将是大小的两倍,逐位作为输入)。

我认为你最好用一个廉价的密码+存储在服务器上的常量密钥加密数字,最后添加一个或四个随机字符,以及一个廉价的校验和,并简单地拒绝任何没有有效校验和的回复。

<encrypt(secret)>
    <integer>+<random nonsense>
</encrypt>
+
<checksum()>
    <integer>+<random nonsense>
</checksum>

然后解密第一部分(记住,便宜==快),使用校验和验证密文,抛弃随机废话,并使用你存储的整数。

这里可能存在一些加密禁忌,但让我们面对现实,这种算法的成本被打破是偏低的一面。