Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 你能在文本中隐藏数据吗?_Algorithm_Design Patterns_Steganography - Fatal编程技术网

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行中的字数(即奇偶校验)给出隐写。另一种方法是使用一个大的英文单词列表(有这样的可下载列表),并通过会话相关密钥对其进行洗牌,以获得两个近似相等的子列表。话