我希望在页面上放置一些文本并隐藏该文本中的一些数据。有人知道过去用来解决这个问题的方法/模式吗?
示例:我有以下文字: “猫坐在狗身上,很高兴。”
我也有号码123.我想在这句话中隐藏这个号码,这样句子可以放在网页上,只有知道的人才能找到数据。
答案 0 :(得分:11)
当然可以这样做。
您所描述的内容名为Steganography。
例如,您可以编码一个数字,以便计算单词数,直到看到字母B为止,在这种情况下123可以编码为:
You belong to the beautiful group of people being elite.
问题是,想要解码消息的人必须知道你的算法。
修改我注意到我的号码已被一个人拒之门外。从0开始计数,你会看到数字123。
答案 1 :(得分:4)
这句话嵌入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