5

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

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

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

4

12 回答 12

11

当然这是可以做到的。

您所描述的是一个广泛的描述,称为隐写术

例如,您可能会以这样一种方式对数字进行编码,即计算单词的数量,直到看到字母 B,在这种情况下,123 可以编码为:

You belong to the beautiful group of people being elite.

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

编辑我注意到我的数字差了一个。从 0 开始计数,您会看到数字 123。

于 2008-12-06T00:10:30.963 回答
4

实际上,HTML 使执行此操作变得非常容易。不需要真正狡猾的隐写术等。让我们看看:

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

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

(我们必须看看它是否真的在降价中起作用,但我怀疑是这样。)诚然,如果你知道有什么东西要寻找,那是很明显的,但我想你会同意这对普通的观察者来说并不明显。

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

于 2008-12-06T08:18:43.537 回答
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。这种随机化将使算法更难逆向工程。

于 2008-12-08T10:50:50.670 回答
2

我认为在高层次上你所说的是隐写术。 http://en.wikipedia.org/wiki/Steganography

现代技术部分应该让你开始:http ://en.wikipedia.org/wiki/Steganography#Modern_steganographic_techniques

于 2008-12-06T00:08:08.020 回答
1

我认为你正在寻找的是一种叫做隐写术的东西。Corinna John 在 CodeProject 上收集了关于该主题的优秀文章。

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

于 2008-12-06T00:08:12.623 回答
0

可能有一种算法可以将该句子转换为 123,但我认为一般来说,如果您需要存储任何可能的数值,您将需要接受对文本的一些修改!

于 2008-12-06T00:07:12.483 回答
0

如果“文本”实际上是图像,那么您可以使用隐写术隐藏其中的数据 - 数据隐藏在二进制图像文件中,而不会影响图像的外观。

于 2008-12-06T00:10:45.737 回答
0

根据这个线程

Mikhail Atallah教授等。人。普渡大学对水印文本做了很多研究。

该方法使用短语的 TMR(文本含义表示)通过执行将 TMR 定位在与定义的规范形式一定距离处的微小变换来对位进行编码。

(这里介绍了另一种给文本加水印的方法)

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

于 2008-12-06T00:14:38.273 回答
0

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

于 2009-12-24T18:53:47.640 回答
0

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

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

将“明天早上 8 点在大学东门见你”之类的源文本转换为看起来像垃圾邮件的短文本消息。

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

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

于 2013-02-28T23:36:34.797 回答
-1

好吧,你可以尝试这样的事情......不过,不确定这是否正是你想要的。

于 2008-12-06T00:06:31.377 回答
-1

我有两个方案具有良好的安全性,但要权衡相当低的隐写嵌入率。其中一个非常简单,但对于任意用户给定的文本,每行的嵌入率只有 1 位,而另一个需要用户在软件的指导下编写封面文本,嵌入率在 [0.5 , 1.0] 每字。查看我的主页 mok-kong-shen.de

于 2017-05-06T14:01:35.590 回答