我希望在页面上放置一些文本并在该文本中隐藏一些数据。有谁知道过去用来解决这个问题的任何方法/模式?
示例:我有以下文字:“猫坐在狗身上,很开心。”
我也有数字 123。我想在那个句子中隐藏这个数字,这样句子就可以放在网页上,只有知道的人才能找到数据。
我希望在页面上放置一些文本并在该文本中隐藏一些数据。有谁知道过去用来解决这个问题的任何方法/模式?
示例:我有以下文字:“猫坐在狗身上,很开心。”
我也有数字 123。我想在那个句子中隐藏这个数字,这样句子就可以放在网页上,只有知道的人才能找到数据。
当然这是可以做到的。
您所描述的是一个广泛的描述,称为隐写术。
例如,您可能会以这样一种方式对数字进行编码,即计算单词的数量,直到看到字母 B,在这种情况下,123 可以编码为:
You belong to the beautiful group of people being elite.
问题是,想要解码您的消息的人必须知道您的算法。
编辑我注意到我的数字差了一个。从 0 开始计数,您会看到数字 123。
实际上,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,反向解析器不会关心其中打印了哪些单词,结果将始终为 1。这种随机化将使算法更难逆向工程。
我认为在高层次上你所说的是隐写术。 http://en.wikipedia.org/wiki/Steganography
现代技术部分应该让你开始:http ://en.wikipedia.org/wiki/Steganography#Modern_steganographic_techniques
我认为你正在寻找的是一种叫做隐写术的东西。Corinna John 在 CodeProject 上收集了关于该主题的优秀文章。
http://www.codeproject.com/script/Articles/MemberArticles.aspx?amid=475133
可能有一种算法可以将该句子转换为 123,但我认为一般来说,如果您需要存储任何可能的数值,您将需要接受对文本的一些修改!
如果“文本”实际上是图像,那么您可以使用隐写术隐藏其中的数据 - 数据隐藏在二进制图像文件中,而不会影响图像的外观。
根据这个线程:
Mikhail Atallah教授等。人。普渡大学对水印文本做了很多研究。
该方法使用短语的 TMR(文本含义表示)通过执行将 TMR 定位在与定义的规范形式一定距离处的微小变换来对位进行编码。
(这里介绍了另一种给文本加水印的方法)
这可能是在文本中隐藏文本的另一种方法,以及其他答案中描述的隐写术方法。
Jon Skeet 提到的方法与 Matthew Kwan 的“ SNOW ”方法非常相似。它们都在文本中隐藏少量任意信息,而不添加、删除或更改源文本中的任何单词。两者都以通常不相关、通常不可见的空白对秘密消息进行编码——单词之间和行尾的额外空格和制表符。
这是一个将加密数据转换为“自然”文本消息的原型。
http://herosys.net/w/project/text-steganography-hide-text-in-spam-sms
将“明天早上 8 点在大学东门见你”之类的源文本转换为看起来像垃圾邮件的短文本消息。
“有史以来最好的房子!你不应该错过它。1000-3000 平方英尺。每平方英尺 15-80 美元。请致电 123-456-7890”。
该算法是您只需创建一个语法图,并为每个单词创建一个候选表。就像 BASE64 一样,但索引表会根据您预定义的上下文进行更改。
好吧,你可以尝试这样的事情......不过,不确定这是否正是你想要的。
我有两个方案具有良好的安全性,但要权衡相当低的隐写嵌入率。其中一个非常简单,但对于任意用户给定的文本,每行的嵌入率只有 1 位,而另一个需要用户在软件的指导下编写封面文本,嵌入率在 [0.5 , 1.0] 每字。查看我的主页 mok-kong-shen.de