你能隐藏文本中的数据吗?

时间:2008-12-06 00:03:39

标签: algorithm design-patterns steganography

我希望在页面上放置一些文本并隐藏该文本中的一些数据。有人知道过去用来解决这个问题的方法/模式吗?

示例:我有以下文字: “猫坐在狗身上,很高兴。”

我也有号码123.我想在这句话中隐藏这个号码,这样句子可以放在网页上,只有知道的人才能找到数据。

12 个答案:

答案 0 :(得分:11)

当然可以这样做。

您所描述的内容名为Steganography

例如,您可以编码一个数字,以便计算单词数,直到看到字母B为止,在这种情况下123可以编码为:

You belong to the beautiful group of people being elite.

问题是,想要解码消息的人必须知道你的算法。

修改我注意到我的号码已被一个人拒之门外。从0开始计数,你会看到数字123。

答案 1 :(得分:4)

实际上,HTML使得这很容易实现。不需要真正狡猾的隐写术等等。让我们看看:

这句话嵌入123然后停止嵌入。

这句话嵌入0102然后停止嵌入。

(我们必须看看它是否真的在降价时起作用,但我怀疑是这样。)不可否认,如果你知道有某些要寻找的话,这很明显,但我认为你会同意这对于不经意的观察者来说并不明显。

我把它作为一个小谜题来制定计划,但如果你想明确解释它,请添加评论。

答案 2 :(得分:3)

这个问题有很复杂的方法,但你可以用一个非常简单的方法。例如。为每个数字定义一个形容词:

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,反向解析器将不关心在那里打印哪个单词,结果将始终为1。这种随机化将使反向设计算法变得更加困难。

答案 3 :(得分:2)

我认为你所谈论的是隐写术。 http://en.wikipedia.org/wiki/Steganography

现代技术部分应该让您入门:http://en.wikipedia.org/wiki/Steganography#Modern_steganographic_techniques

答案 4 :(得分:1)

我认为你所寻找的是一种叫做隐写术的东西。 Corinna John在CodeProject上有很多关于这个主题的文章。

http://www.codeproject.com/script/Articles/MemberArticles.aspx?amid=475133

答案 5 :(得分:0)

可能有一种算法可以将该句子变成123,但我认为如果你需要存储任何可能的数值,你通常需要接受对文本的一些修改!

答案 6 :(得分:0)

如果'text'实际上是一个图像,那么您可以使用steganography隐藏数据 - 数据隐藏在二进制图像文件中,而不会影响图像的外观。

答案 7 :(得分:0)

根据thread

教授。 Mikhail Atallah等。人。普渡大学在 watermarking text 进行了大量研究。

该方法使用短语的TMR(Text Meaning Representation)来对位进行编码,方法是将TMR定位在与定义的规范形式相距一定距离的位置。

(水印文字的另一种方法是presented here

这可能是隐藏文本中文本的另一种方式,以及其他答案中描述的Steganograph方法。

答案 8 :(得分:0)

Jon Skeet提到的方法与Matthew Kwan的“SNOW”方法非常相似。它们都会在文本中隐藏少量任意信息,而无需添加,删除或更改源文本中的任何单词。 两者都在通常不相关的,通常不可见的空白中编码秘密消息 - 单词之间和行尾的额外空格和制表符。

答案 9 :(得分:0)

以下是将加密数据转换为“自然”文本消息的原型。

http://herosys.net/w/project/text-steganography-hide-text-in-spam-sms

将源文本转换为“在大学东门看见U,明天早上8点”,短信看起来像垃圾邮件。

“有史以来最好的房子!你永远不应该错过它.1000-3000平方英尺。每平方英尺15-80美元。致电123-456-7890”。

算法是你只需创建一个语法图,并为每个单词创建一个候选表。就像BASE64一样,但索引表会根据您的预定义上下文进行更改。

答案 10 :(得分:-1)

好吧,你可以试试类似this的东西......不确定这是不是你正在寻找的东西。

答案 11 :(得分:-1)

我有两个方案具有良好的安全性,但需要权衡相当低的stegabit嵌入率。其中一个非常简单,但是每行任意用户只有1比特的嵌入率给定文本,而另一个要求用户在软件的指导下组成隐含,实现了嵌入率在[0.5]范围内。 ,1.0]每个字。请参阅我的主页mok-kong-shen.de