可能重复:
如何检查字符串是否看起来是随机的,或者是人为生成的和发音的?
有没有办法检测像 putjbtghguhjjjanika 这样的字符串?
是否有任何算法能够检测在线昵称的随机性?在许多情况下它会派上用场。
给定任何字母数字名称,算法应该能够给它一个“随机”值。如果随机值太高,则应用程序可能会强制用户选择另一个名称。
例如,“Mikel”将通过测试并被允许使用,而“Agslj”则不会并被迫选择其他名称
如果没有可用的算法,我将如何为此创建算法?
可能重复:
如何检查字符串是否看起来是随机的,或者是人为生成的和发音的?
有没有办法检测像 putjbtghguhjjjanika 这样的字符串?
是否有任何算法能够检测在线昵称的随机性?在许多情况下它会派上用场。
给定任何字母数字名称,算法应该能够给它一个“随机”值。如果随机值太高,则应用程序可能会强制用户选择另一个名称。
例如,“Mikel”将通过测试并被允许使用,而“Agslj”则不会并被迫选择其他名称
如果没有可用的算法,我将如何为此创建算法?
您可能想查看英文字母的使用模式/频率,Letter Frequency Analysis是一个很好的基础知识网站。
此页面还将帮助您进行狩猎。
基本上你想要做的是使用与密码学家在尝试破解代码时使用的类似的技术。
如果输入到文本框中的工作在丢失阈值内与已知的使用模式匹配,那么您可以允许它,而如果输入与任何频率/使用模式不匹配,甚至一点点,那么您可以安全地丢弃它。
我强烈建议您在尝试任何此类算法之前研究此类技术。
但是,在如此短的输入中,我无法保证您的准确性...
实现这样的算法似乎很难,但你可以尝试一下:
如果您检查基于英语的单词(或任何源自拉丁语的语言),则没有超过 3 个连续辅音的单词。元音也是一样。
此外,您可以计算存在多少个数字,在哪个位置等。