Geo*_*ker 48 language-agnostic security passwords algorithm
前几天在健身房,我正在使用我的密码锁,并意识到一些对我作为程序员有用的东西.也就是说,我的组合是三个单独的数字组合,听起来相似,或者有一些其他关系使它们易于记忆.例如,5-15-25,7-17-2,6-24-5.这些例子似乎很容易记住.
我如何实现类似的密码?是的,它们应该很难破解,但它们也应该很容易让最终用户记住.组合锁使用具有相似声音的数字混合,并且具有相似属性的数字(7-17-23:所有Prime,17在7之后从舌头滚动,23是另一个素数,并且是(out)那套),"难以记住".
Dog!Wolf很容易记住,但是一旦攻击者知道你的网站发布了这种组合,它就会变得更容易检查.!@#$%^&*();'{}_+<>?,./这些标点符号虽然适用于"硬"密码,但却没有"易于记忆"的声音.这个问题与语言无关,但是如果有一个C#的具体实现,我会很高兴听到它.
一些用户说'这是错误的密码安全'.不要以为这是针对网站的.这可能只是让我为自己制作一个根据这些规则生成密码的应用程序.这是一个例子.
字母 A - C - C - L - I - M - O - P '流',它们恰好是两个常规单词放在一起(Acclimate和Mop).此外,当用户说出这些字母,或者将它们说成一个单词时,它就是一个真实的单词.容易记住,但很难破解(明显的字典攻击).
这个问题有两个部分:
Sum*_*uma 19
首先要确保密码很长.考虑使用"密码短语"而不是单个"密码".打破诸如"狗与狼之间的仇恨"之类的通行语.非常难,但它们很容易记住.
有些网站也可能会给你一些建议,这些建议可能会有所帮助,比如强密码:如何创建和使用它们(从密码检查器链接,这是一个独立的有用工具).
此外,不是试图创建易于记忆的密码,在某些情况下,更好的选择是通过使用(并教育用户使用)良好的密码管理实用程序来避免记住密码(请参阅什么是您最喜欢的密码存储工具?) - 当这样做时,剩下的唯一部分是创建一个难以破解的密码,这很容易(任何足够长的随机句子都可以).
Joe*_*erg 12
我很惊讶没有人提到http://www.multicians.org/thvv/gpw.html中描述的Multics算法,它类似于FIPS算法但是基于三字形而不是有向图.它产生的输出如
ahmouryleg
thasylecta
tronicatic
terstabble
Run Code Online (Sandbox Code Playgroud)
我已经将代码移植到python:http: //pastebin.com/f6a10de7b
Ale*_*ort 11
您可以使用Markov Chains生成听起来像英语(或您想要的任何其他语言)的单词,但它们不是实际单词.
容易记住的问题是非常主观的,所以我认为你不能写出这样一个对每个人都有好处的算法.
为什么在网站/计算机应用程序上使用短密码而不是密码?它们很容易记住但很难破解.
多年后,我决定使用密码中的第一个单词.它是不可能破解的,通用的长度和限制,如"你必须有一个数字",并且很难犯错误.
这通过创建一个短语来工作.一个疯狂有趣的生动话题很有用!"Stack Overflow外星人在没有使用火箭或轮子的情况下降落".拿第一个字母,你的密码是"soalwurow"
你可以快速准确地输入这个,因为你不记得一个字母,你只是在脑海里说一句话.
我也喜欢在键盘的左右两侧交替使用单词,它可以让你的打字速度更快,节奏也更令人愉悦.请注意,在我的示例中,您的双手交替左右 - 左 - 右.
我有几次使用以下算法:
true或false
true,从密码中删除最后一个字母false,不做任何事情Voilá - 现在你应该有一个长度在5到10个字符之间的密码,大写和小写字母数字字符.元音和辅音轮流经常使它们半发音,因此更容易记住.
FWIW我非常喜欢用简单但基本上随机的密码来翻译单词音节.以"Bongo"为例,作为一个随机词.交换你得到"Gobong"的音节.将o替换为顶部的零(或其他常见替换)并且您有一个基本上随机的字符序列,其中一些跟踪可以帮助您记住它.
现在你如何以编程方式选择音节 - 这是另一个问题!