首页 > 解决方案 > 这个解释过的散列算法如何转化为(伪)代码

问题描述

我目前正在写关于隐写术的学士论文,偶然发现了一个散列算法线性化释义问题。我理解它的第一部分(并且更容易),但无法理解第二部分(粗体):

对于给定的推文,该值是通过获取每个单词的键控哈希摘要来确定的(这里使用 MD5 算法生成的哈希中的 4 位),根据其在推文中的位置逐位旋转每个值,然后异或- 将这些值结合在一起。 为推文的每个索引计算部分哈希值。构建一个表,将索引和可能的哈希值映射到解释替换,这将导致给定的哈希值直到推文中的该索引;这些替换与推文中前一个索引所需的部分哈希值配对。

理解上述段落所需的解释性背景:

该算法的想法是对I like Twitter a lot关于其哈希的有效释义的搜索线性化,例如,以下所有句子在“语言正确性”的意义上都可以被视为有效,但只有其中一些产生所需的哈希(在预先)

因此,我目前的编程方法涉及通过释义规则进行回溯,获取每个语法和意义有效的句子,然后对所有句子进行散列,以获得我实际正在寻找的释义集合(即产生所需散列的语法和语义推文) .

所描述的算法声称通过某种方式只生成保证产生所需散列的释义来线性化我的方法,但我无法理解它是如何实现这一点的。

我将不同的值进行异或运算,如本例所示,使用每个单词的组合位值

原始推文 喜欢 推特 一个 很多
提取 4 位 0000 1010 0111 1100 1001
按位旋转 0000 0101 1101 0110 1001

异或值将是0000 XOR 0101 XOR 1101 XOR 0110 XOR 1001 = 0111

我现在需要了解这种“表格”方法的结构和功能,并且非常感谢任何帮助或见解!

标签: pythonalgorithmbit-manipulationpseudocodesteganography

解决方案


推荐阅读