我有160位随机数据.
只是为了好玩,我想生成一个英文伪诗来"存储"这些信息.我希望能够从这首诗中恢复这些信息.(对于任何一种诗歌,这里的"诗"是一个含糊的术语.)
注意:这不是一个安全问题,我不在乎别人是否能够恢复信息甚至检测到它是否存在.
更好的诗的标准:
我要说的是,可接受的诗不超过三行每节四行.(但另一种,既定的诗歌形式,如十四行诗也很好.)
我喜欢这个想法,但是,我担心,我对如何使用英语计算机生成的诗歌完全无能为力.(当我年轻的时候,我为俄罗斯编程了,但看起来这种体验对我来说无济于事.)
那么,有什么线索吗?
注意:我已经问了类似的问题.我想试试这两种方法.请注意好的诗歌标准与并行问题中的好词组有何不同.请记住,这只是"为了好玩".
另外,我必须注意到这一点:在某些相关问题上有一个RFC 1605.但它没有提出任何实施细节,所以对我来说这对我没有用,对不起.<G>
我有一个大的"唯一"整数(实际上是一个SHA1哈希).
注意:虽然我在这里谈论SHA1哈希,但这不是加密/安全问题!我不打算打破SHA1.想象一个随机的160位整数而不是SHA1,如果这将有所帮助.
我想(除了有趣之外)找到一种算法将SHA1哈希映射到计算机生成的(伪)英语短语.映射应该是双向的(即,知道算法,必须能够从该短语计算原始SHA1散列.)
这句话没有意义.我甚至会满足于整段废话.(虽然一个段落的质量 - 英语 - 应该比单纯的短语更好.)
更好的算法会产生更短,更自然,更独特的短语.
一个变化:如果我只能使用一部分哈希值,那就没关系了.比如,前六个十六进制数字是好的.
生成的短语的可能用法:Git提交ID的人类可读版本,用作给定程序版本的座右铭,该版本是根据该提交构建的.(正如我所说,这是"为了好玩".我并不认为这是非常实用的 - 或者比SHA1本身更具可读性.)
可能的方法:在过去,我试图建立一个概率表(单词),并根据我从SHA读取的位,生成短语作为马尔可夫链,播种生成器(从概率树中挑选分支).这不是很成功,由此产生的短语太长而且难看.我不确定这是一个错误,还是算法中的一般缺陷,因为我不得不尽早放弃它.
现在我正在考虑再次尝试解决问题.关于如何处理这个问题的任何建议?你认为马尔可夫连锁方法能在这里发挥作用吗?别的什么?