4

人类可读,这意味着字符串是一个真实的单词。这本质上是一个表单验证。理想情况下,我想测试表单响应的“纹理”,以确定实际用户是否填写了表单,而不是寻找表单漏洞的人。可能对发布的数据使用字典查找,然后给出返回的“真实单词”的阈值。

我在 PHP 文档中没有看到任何内容,Google 机器也没有提供任何内容,至少是这个特定的。我怀疑有人已经编写了一个 PHP 类,甚至是一个 jQuery 插件,可以做到这一点。像这样:

$string = "laiqbqi";

is_this_string_human_readable($string);

有任何想法吗?

4

1 回答 1

8

这可以使用一种叫做马尔可夫链的东西来完成。

从本质上讲,他们通读给定语言(英语、法语、俄语等)的大量文本,并确定一个字符接一个字符的概率。

例如,“q”出现在“z”之后的概率比元音(如“a”)要低得多。

在较低级别上,这实际上是作为状态机实现的。

根据 Mike 的评论,可以在此处找到它的 PHP 版本。

为了风味,关于马尔可夫链的一篇有趣的每日 WTF 文章。

于 2012-06-01T16:39:00.373 回答