bingoohuang / blog

write blogs with issues
MIT License
177 stars 23 forks source link

使用古诗词创建好记的密码 #22

Open bingoohuang opened 6 years ago

bingoohuang commented 6 years ago

背景

有一定复杂度的密码,一般都要求以下3点:

  1. 长度在8位以上;
  2. 包含大小写字母混合;
  3. 包含数字、特殊字符;
  4. 如果非要加上第4点,我想一定是趣味好玩记得住。

可是,这样的密码即使构建出来了,很不容易记忆,比如Q4m)h4gWlczr!h,很复杂吧,但是枯燥无味保准记不住。

以古诗词为基础,创建符合要求的密码

比如:

出塞
唐·王昌龄
秦时明月汉时关,万里长征人未还。
但使龙城飞将在,不教胡马度阴山。

秦时明月汉时关,万里长征人未还。这句就可以创造出密码Q4m)h4gWlczr!h,输入密码的时候,只需要默念秦时明月汉时关,万里长征人未还。 以拼音首字母为基础,句首字母大写,时谐音成4,月形象为),未转换为!(编程语言C中的逻辑否定语义)。

通用转换规则

  1. 两句连在一起,取拼音首字母,句首字母大写;
  2. 数字规则
  1. 特殊字符规则:

    • ! 叹号 exclamation mark/bang,可替代等否定字,也可代
    • ? 问号 question mark,可替代
    • , 逗号 comma,可替代谐音dòu
    • . 点号 dot/period/point ,可替代
    • : 冒号 colon ,可替代
    • ; 分号 semicolon ,可替代
    • ” 双引号 quotation marks/double quote ,可替代
    • ‘ 单引号/撇号 apostrophe/single quote ,可替代
    • ` 重音号 backquote/grave accent,可替代
    • * 星号 asterisk/star,可替代
    • + 加号 plus sign,可替代谐音jiā
    • - 减号/横线 hyphen/dash/minus sign/ ,可替代
    • = 等号 equal sign,可替代
    • / 斜线 slash,可替代
    • \ 反斜线 backslash/escape,可替代反转
    • | 竖线 bar/pipe/vertical bar ,替代谐音shù
    • _ 下划线 underline/underscore,可替代
    • $ 美元符号 dollar sign,可替代(盘在柱子上的龙) 、、谐音
    • @ at at sign ,替代以及任何可滚动或环状意境的字,比如;还可替代所有有的字,如:逃进近遁边随等。
    • # 井号 crosshatch/sharp/hash,可替代,也可谐音jǐng
    • % 百分号 percent sign/mod,替代
    • & and/和/兼 and/ampersand,替代
    • ^ 折音号 circumflex/caret ,可替代
    • ~ 波浪号 tilde,可替代等有波纹意境的字以及叠字的第二字
    • {} (左右)花括号/大括号 (left/right|open/close) braces,{可替代西}可替代
    • [] (左右)方括号/中括号 (left/right|open/close) brackets,]可替代[可替代
    • () (左右)圆括号/小括号 (left/right|open/close) parentheses, )可替代(可替代
    • \<> 尖括号 angle brackets
    • \< 小于号 less than,可替代
    • > 大于号 greater than,可替代
    • 空格 可替代
  2. 补充规则:

    • 对于既可以替代为数字也可以替代为特殊字符的时候(比如可以替换成*或者1),如果当前密码缺乏数字,那就替换成数字,如果当前密码缺乏特殊字符,那就替换成特殊字符,如果都缺乏或者都有,也替换成数字。
    • 长度达不到8位。补充到8位,缺几补几,例如缺1个那就补1,缺2个就补22,以此类推。例如羌管悠悠霜满地(Qgy~smd1)。
    • 缺少数字。取末位字拼音声调,1234。
    • 缺少特殊字符。补刀($)即可。
  3. 扩展:不同网站不同密码

    • 比如大吕勇这种技术控,不止想要有复杂的密码,还想有不同网站不同密码,咋办呢?
    • 选定基础密码后,在头尾进行扩展。比如,选定基础密码,煮豆燃豆萁,豆在釜中泣(Z,rd7,@f]7)。京东的密码就扩展成:j{基础密码}d=>jZ,r,7,@f]7d,淘宝的密码就是:t{基础密码}b=>tZ,r,7,@f]7b,亚马逊的密码就是:y{基础密码}mx=>yZ,r,7,@f]7mx,QQ的密码就是:q{基础密码}q=>qZ,r,7,@f]7q,以此类推。
    • 如果有的网站不允许你输入特殊字符,你又不得不录入密码的话,你就只能心里默默的骂一句狗娘养的,然后,去掉一切特殊字符的规则,基础密码换成Zdrd7Dzfz7。如果有的网站还不允许超过8位,那就只能再骂一句娘希匹,基础密码换成Zdrd7了,再加上头尾,就是7位了。
  4. 再次扩展:不同网站不同古诗

    • 京东,在古诗中找京字或者东字的,比如:京口瓜洲一水间,钟山只隔数重山。
    • 淘宝,淘->涛->大江东去,浪淘尽,千古风流人物。
    • 亚马逊,马->下马饮君酒,问君何所之。
    • 其它自己去中华诗词网查询去
    • 这些古诗,可以在云笔记里面记录下来,什么网站对应什么古诗。
  5. 示例:

咏柳
唐·贺知章
碧玉妆成一树高,万条垂下绿丝绦。Byzc1|^Wtc_6~d
不知细叶谁裁出,二月春风似剪刀。!Zxy?cc2)C~4j(

绝句
唐·杜甫
两个黄鹂鸣翠柳,一行白鹭上青天。2ghlmcl1hbl^qt
窗含西岭千秋雪,门泊东吴万里船。Ch{0qq*Mb}5wlc

清明
唐·杜牧
清明时节雨纷纷,路上行人欲断魂。Qm4j~f~6^xrydh
借问酒家何处有,牧童遥指杏花村。J?9+?cyMtyzx*c

赠花卿
唐·杜甫
锦城丝管日纷纷,半入江风半入云。Jc4g*f~B>j~b>~
此曲只应天上有,人间能得几回闻。C7zyt^yRjnd?hw

乌衣巷#wyx
唐·刘禹锡
朱雀桥边野草花,乌衣巷口夕阳斜。Zqqbyc*W1xkx1/
旧时王谢堂前燕,飞入寻常百姓家。94wxtqyF>xc%x+

又背古诗词,又记住复杂密码,不亦乐乎。

hellokaton commented 6 years ago

有代码片段吗?

baiyutang commented 6 years ago

哈哈,这个有意思。赞!

baiyutang commented 6 years ago

@biezhi 哈哈好巧。我前几天关注了你,今天无意发现我们在同一个项目下留言了

bingoohuang commented 6 years ago

有代码片段吗?

这个是一种规则,不是考虑用代码生成密码用的,是为了方便记忆密码用的。

bingoohuang commented 4 years ago

来试一下你自己的密码有多安全点击, 安全意识从我们自己做起哦

image

老邪:来,我告诉你,密码是:jJkgz1~jZszgscsd

金良:这密码着实不好记

老邪:哈哈,好记啊。京东jd的密码,j京口瓜洲一水间钟山只隔数重山d,jJkgz1~jZszgscsd。

金良:哈哈,这个到时也是一种好的方法

老邪:这种结合古诗词的,又好记忆又有强度,还是不错的办法

金良:确实,你这个水转义的好

参考刘金良同学的说明

SaguruHakuba commented 3 years ago

Mark一下。

Anonymous772066235 commented 2 years ago

看到你总结的比较全,我参考着用python实现了一下,有些许出入,可以自定义。(https://github.com/Anonymous772066235/LittleTasks/tree/main/Poetry_to_password