Algorithm 你能在文本中隐藏数据吗?
我希望在页面上放置一些文本,并在该文本中隐藏一些数据。有人知道过去用来解决这个问题的方法/模式吗 示例:我有以下文本: “猫坐在狗身上,很高兴。”Algorithm 你能在文本中隐藏数据吗?,algorithm,design-patterns,steganography,Algorithm,Design Patterns,Steganography,我希望在页面上放置一些文本,并在该文本中隐藏一些数据。有人知道过去用来解决这个问题的方法/模式吗 示例:我有以下文本: “猫坐在狗身上,很高兴。” 我还有123号。我想把这个数字隐藏在那个句子里,这样这个句子就可以放在网页上,只有有知识的人才能找到数据。好吧,你可以试试……但不确定这是否正是你要找的。可能有一种算法可以把这个句子变成123,但我认为,如果需要存储任何可能的数值,通常需要接受对文本的一些修改 我认为从高层次上讲,你所说的是隐写术 关于现代技术的部分应该让你开始:我想你要找的是一种叫
我还有123号。我想把这个数字隐藏在那个句子里,这样这个句子就可以放在网页上,只有有知识的人才能找到数据。好吧,你可以试试……但不确定这是否正是你要找的。可能有一种算法可以把这个句子变成123,但我认为,如果需要存储任何可能的数值,通常需要接受对文本的一些修改 我认为从高层次上讲,你所说的是隐写术
关于现代技术的部分应该让你开始:我想你要找的是一种叫做隐写术的东西。科琳娜·约翰在CodeProject上有一本关于这个主题的优秀文章集
当然,这是可以做到的 你所描述的是一个广义的描述,叫做 例如,您可以对一个数字进行编码,这样您可以计算字数直到看到字母B,在这种情况下,123可以编码为:
You belong to the beautiful group of people being elite.
问题是,想要解码你的信息的人必须知道你的算法
编辑我注意到我的数字偏离了1。从0开始计数,您将看到数字123。如果“文本”实际上是一个图像,那么您可以使用隐藏在该图像中的数据-数据隐藏在二进制图像文件中,而不会影响图像的外观。根据以下内容: 普渡大学的教授等人对做了大量研究 该方法使用短语的TMR()对位进行编码,方法是执行较小的转换,将TMR定位在与定义的规范形式一定距离的位置 (另一种为文本添加水印的方法是)
这可能是另一种在文本中隐藏文本的方法,以及其他答案中描述的隐写术方法。HTML实际上使这一操作非常容易。不需要真正狡猾的隐写术等。让我们看看: 这个句子嵌入123,然后停止嵌入 这个句子嵌入0102,然后停止嵌入 (我们将不得不看看它是否真的在降价中起作用,但我怀疑是这样。)诚然,如果你知道有什么东西需要寻找,这是很明显的,但我想你会同意,对于不经意的观察者来说,这并不明显
我把它作为一个小小的谜团来解决这个方案,但是如果你想明确地解释它,请添加一条注释。解决这个问题的方法非常复杂,但是你可以使用一个非常简单的方法。例如,为每个数字定义一个形容词:
0. beautiful
1. harmless
2. evil
3. colorful
4. weird
等等。现在选择你所选择的句子,在形容词所属的句子中加上定位符
"The {adj} cat sat on the {adj} dog and the {adj} cat was happy."
你的号码是123,所以你的句子是
"The harmless cat sat on the evil dog and the colorful cat was happy."
解析器可以很容易地将句子拆分成单词,在上表中找到形容词,然后将它们转换回数字
The -> ?
harmless -> 1
cat -> ?
sat -> ?
on -> ?
the -> ?
evil -> 2
:
最后你又得到了123
一旦人们知道句子中隐藏着信息,算法就很容易被破坏。如果你在每个数字上定义多个形容词来增加变化,那么你就更难突破。而不是
1. harmless
你可以定义
1. harmless/stupid/blue/fashionable
当你需要对1进行编码时,随机选择上面的任何一个单词。当这些都映射到数字1时,反向解析器将不关心在那里打印哪个单词,结果总是一个。这种随机化将使算法更难逆向工程。Jon Skeet提到的方法与Matthew Kwan的“方法”非常相似。它们都在文本中隐藏少量任意信息,而不添加、删除或更改源文本中的任何单词。 两者都用通常不相关、通常不可见的空白对秘密信息进行编码--
单词之间和行尾的额外空格和制表符。这里有一个原型,可以将加密数据转换为“自然”文本消息 将源文本(如“明天上午8点在大学东门见你”)转换为类似垃圾邮件的短文本 “有史以来最好的房子!千万不要错过。1000-3000平方英尺。每平方英尺15-80美元。拨打123-456-7890。”
算法是您只需创建一个语法图,并为每个单词创建一个候选表。和BASE64一样,索引表也会根据预定义的上下文进行更改 我有两个安全性很好的方案,但要折衷相当低的隐藏比特嵌入率。其中一个非常简单,但嵌入率仅为每行1位的任意用户给定文本,而另一个则要求用户在软件的指导下编写隐蔽文本,实现了每字[0.5,1.0]的嵌入率。请参见我的主页mok kong shen.de以添加。。如果你点击CodeProject上的链接,你将进入她的主页。。它似乎专注于自己动手的隐写术。。。如果这样做,请确保在HTTP服务器上启用压缩!是的,如果你正在传输大量数据,它可能会变得有些笨拙。在图像中隐藏数据只是隐写术的一个分支。第一个链接是404。这看起来更像是一个只有链接的答案。请在此总结相关信息以获得完整答案,并在结尾提供链接以供其他阅读/参考/上下文。@Reti43:谢谢。一个名为EMAILSTEGANO的方案修改文本(电子邮件等)中的字数,使得mod 2行中的字数(即奇偶校验)给出隐写。另一种方法是使用一个大的英文单词列表(有这样的可下载列表),并通过会话相关密钥对其进行洗牌,以获得两个近似相等的子列表。话