精通密码学的人是怎么设置密码的？
看了一些答案，被有些逻辑逗笑了，所以也来答个题。 其实就算是你把密码设置得再复杂，中英文大小写加数字标点，但是问题得根本在于，目前的密码泄漏往往不是因为你的密码不够复杂和严谨，而是因为那些你登陆的网站、app他们存放密码的数据库太过脆弱。 现如今，单独针对某人去对他进行密码破解，时间成本和人力成本都颇高，大多获取密码的方式是撞库或者脱裤啊。 除了你身边暗恋你的人和你爹妈朋友之类，基本上没有人会对你的账号密码感兴趣，有时候密码泄漏——比如QQ偶尔被异地登陆、某账号在不安全IP尝试登陆，往往是网络上的AOE碰巧伤到你了。 但是相信我，背后的操作者往往都没有针对你。 很多的数据库不讲武德，甚至用明文存储密码，所以在脱裤的人看来，你把密码设置得天花乱坠和设置成123456没有任何区别——反正都是导出来跑脚本。 而对于重视安全的企业和科技公司，在对用户字段处理的过程中，密码字段往往采用了加密。 可是话又说回来了，加密后，你的密码是123456或者是flzx3000C，似乎也是没有任何区别。 但是，防不胜防的是，通常人不可能只在一个网站或者软件注册账号，所以就有一部分人，破解了某些网站的数据库之后，拿数据库里的资料去尝试登陆大企业的网站，比如拿下了某连锁旅店的数据库资料，去登陆12306。俗称撞库。 然后12306万万没想到，我安全做的这么周密，全程https，信息各种加密，甚至验证码拦住了99%的机器人和脚本。然而还是出现大规模用户账号密码泄漏的事件。 许多唐诗爱好者觉得自己密码已经是独具一格，各种数字符号夹杂简直无人可破，素不知自己的账号早就被别人用于拼多多砍刀和贡献火车票抢票加油包了。 对于那种明文存储的数据库，你密码设置得再长再复杂，似乎也不管事，倒是每次输入的时候麻烦了好多——还得切换大小写，还得输入符号。可是对于盗号者来说，他甚至都不用输入啊，直接脚本在导出和复制…… 言归正传，怎样设置密码才安全呢？ 我可以负责地告诉你，目前所有登陆方式中，手机验证码登陆是最安全的。如果非要上一些不方便透露手机号码的网站，那就按网站设置密码，尽量每个软件或者网站都是单独的密码。这样就算某个网站被脱裤了，对你其他账号也没有影响，而且你可以根据泄漏的资料快速判断是哪个网站出了问题，从而快速消除影响。  正文已结束，以下为衍生品。 ==================================================== 下面说点好玩的，精通密码学的人是怎么设置密码的。 说到密码学，绕不开凯撒。 凯撒大帝（Gaius Julius Caesar）是罗马人，出生于公元前100年，中国是汉朝，汉武帝时期。 凯撒带兵打仗的时候，经常给手下的将领传达口信的时候，会被敌军截取，或者有内鬼泄漏。 于是他就想了一个加密的方法，也就是最原始的凯撒加密——字母向后偏移3位。 比如 kill his mother tonight（今晚干掉他妈）， 加密后就变成了nloo klv prwkhu wrqljkw（简直乱码） 然后他把这个加密方法告诉了他手下的将领们。 在后续的送信中，就算敌方截获或者是内鬼泄漏，但是敌人仍然是一头雾水，不知道他妈的命运究竟是如何。 然而总是有些喜欢喝酒的将领，有时候说着胡话就跟身边的舞女说了句LORYHX 舞女就不解，问将军，LORYHX是什么意思啊？ 将军就说：嘿嘿，LORYHX就是I love u啊！ 舞女就问，LORYHX怎么会是I love u呢？ 将军就说：I love u每个字母向后偏移3位就是L ORYH X，这叫做加密。 舞女就说：那我明白了，把LORYHX向前偏移3位就是I LOVE U，这就叫解密。 将军说你真棒！ 舞女转眼就把这个消息告诉了敌方大帅，原来这个舞女是敌方的卧底。 敌方大帅这才终于明白了自己母亲的真实死因，原来是被凯撒的人暗杀的。 于是又领兵跟凯撒大战了一场。 凯撒后来几次也发现，我这军机怎么老是被泄漏呢？ 一查就发现自己的加密方式被破解了。 但是凯撒是什么人？密码学鼻祖啊！ 他立马肃清身边人，又下令禁酒，又设定了几套新的方案： 每次的加密信息都不同，而且伴随着严格的军纪，所以凯撒的信息传递效率很高，十个信使派出去，就算被截获4个、叛变3个、迷路2个，只要一个能送到，凯撒完全不担心军机会延误。 凭借这个，凯撒就打遍罗马，成为一代大帝。  凯撒的加密方式一直持续了800年，成为无外人可破的顶尖密码学。 直到一个阿拉伯的数学家Al-Kindi横空出世。 Al-Kindi仰望着凯撒大帝的雕像，轻声说道： “凯撒大帝，我是你的破壁人。“ ----------------------第一次追更------------ Al-Kindi在研究关于英文的书籍中，发现了字母频率这个客观存在。 基本上大多数英文单词，都有元音字母在其中。 一篇英文里面，a、e、i等字母出现的频率要略高。 Al-Kindi总结了一套频率表，按照频率将字母排序。 如：e、o、a、i、t、n、s、r、h…… 这一套解密方法，被誉为英文的指纹。 使用者在通信的时候，往往都没有察觉到自己留下了指纹。 比如：talk is cheap, show me the code 凯撒加密后变成：wdon lv fkhds, vkrz ph wkh frgh 当Al-Kindi拿到这组加密后的数据后，他就看这句里面出现最多的字母，很明显就是h 然后，他就假定这个字母原本是e，就可以得出偏移量是向后3位，不到一秒钟，他就解开了这组凯撒密码。 这种降维打击让凯撒密码全部失效。 因为只要按照字母频率去挨个破解，无论是偏移了多少位，高频字母一确定，密码就迎刃而解！ 这是人类历史上，加密者与解密者的第一次有名的较量。 加密者用常人想不到的方式加密传递信息，在战争年度战无不胜攻无不克。而解密者也是从意想不到的角度解密，在和平年代破壁而出。 但是历史的车轮滚滚前行，战争是不断的，精通密码学的人也再度出现。  在十五世纪的欧洲（中国是明朝），拜占庭帝国覆灭前的战役，一群欧洲人又构造出了一种全新的密码形式——多表密码 他们在凯撒密码的基础上，发明了关键词，利用关键词加密，从而破坏字母高频出现的规律。 国王把这个关键词告诉他将领们，每次的军机都通过关键词加密和解密。 比如这场战役的关键词是：dog 那就意味着后面的通讯，第一个字母向后偏移3位，第二个字母向后偏移14位，第三个字母向后偏移6位，第四个字母向后偏移3位，第五个14位、第六个6位、第七个3位……以此类推 我们再试着加密一下这句话：talk is cheap, show me the code 他就变成了：worn wy fvkdd, ykcc ps zks irck 这就完全打破了高频字母的出现规律，不知道关键词的人很难破解密码。 但是战争是什么？ 战争就是一群人绞尽脑汁想算计另一群人。 多表密码虽然强大而且难破解。 但是仍有不少国家的智囊团通过寻找偏移量的规律而推算出，应该是通过词组加密的。 而智囊团就开始分析该国王的生活方式、饮食起居、兴趣爱好 结果发现该国王养了几条柯基犬。 然后智囊团就想，这个国王的关键词不会是dog吧？ 结果套进去一试，咦？这不就解开了吗！ 虽然有人解开了多表密码，但也仍然掩盖不住它的光辉。 这种新的加密形式将拜占庭帝国送向灭亡。 而更多的国王发现了弱密码的缺点，就将关键字设定为ilovemydog或者whosyourdaddy 这样，纵使是聪明的智囊团，纵使密码可破解，但也不会在短短一场战役里破解出来。 多宝密码一直被使用到19世纪鸦片战争之前。 随着战争逐步全球化，精通密码学的人又开始了新一轮的投胎…… ----------------------第二次追更------------ 电报的发明，让信息的传递不再局限于纸或者口讯。 由于铁路迅速发展，传输的距离也达到了以前不敢想象的长度。 可是，超长的距离也增加了路上信息被截获的风险，而且随着数学研究的逐渐深入，人们对解密又有了长足的进步。多宝密码的加密方式虽然令讯息全文变得复杂，但是换位思考，它变成了某一个单词的破解，只要破解出关键词，加密的信息就呼之欲出。 一群精通密码学的人，发明了一种新的加密方式。  一次性密匙可以说是人类不借助工具就很难解开的最强加密方式了，所以从它发明出来一直到现在，仍然普遍被运用。 它仍属于多表密码的延伸，不同的是，多表密码通过关键词加密，就会造成字母偏移的频率仍然是可以被测出来，只要样本足够，就不难推算出关键词。 而一次性密匙，则是通过一组随机数，去加密信息。 比如：π=3.1415926535 8979323846 2643383279 5028841971 693993751…… 我用圆周率小数点后10位-40位去加密一段有30个字母的英文文本。 这样加密后的文本，每个字母的偏移量都是不固定的，不仅打破字母频率，而且没有重复规律可循。 文本越长，我就采取越多的随机数，最终的文本就会被加密的面目全非。 虽然说用π加密已经足够安全，但如果重复使用，也容易被推算出加密的数据，因此，战争年代那些人，都会给情报人员配发一本“一次性密码本”，也就是one time pad，每册密码本都只用一次，用过即换，从而做到万无一失。 一次性密匙的两大优点： 1、没有任何重复的模式 2、加密后文本频率均匀 但是它也有一个最大的缺点：操作麻烦！ 信息的发送方和接受方，必须得有同样的密码本，而且每次的操作都必须得严格执行密码本的更新，但是人又不是机器，想让人不犯错，是不可能的，只要密码册出问题——可能是印刷问题、可能是运输问题、可能更换不及时、可能上厕所没纸顺手就……这些就会导致就连收的人也不知道信息是什么，从而延误军机。 但是，但这个加密技术从军事走向民生的时候，它又体现出了不一样的优势。 因为是真的很安全。 但是这个安全，被使用起来，也是分等级的。 举例： 1、如果你上网冲浪足够久，那么你一定知道破解软件的存在。 如果你知道破解软件，那么你可能会知道注册机。 许多软件，通过免费下载试用，购买序列号的方式激活。 如：photoshop、coreldraw等 他们的序列号都是通过一个偏移的算法，将你的机器码加密从而得到一组数据。 每个人的机器码都是不同的，所以每个人得到的序列号也是不同的，这里涉及到一个伪随机的概念，因为这种得到加密的方式，并非真正的随机数加密。 于是就有精通密码学的人，破解了这些大厂的算法，做出了注册机。 2、TOTP 比较高一点level的呢，通过时间设置随机数。因为时间每时每刻都在变换，可以精确到毫秒（ms），所以每次得到的数都不一样。 通过时间生成的随机数，设置一个复杂的偏移算法，得到一组加密数。 猜猜被应用在哪里？ 玩网络游戏的朋友可能比较熟悉。 3、HOTP 这种一次性密匙，我们有一个俗称，叫做动态密码。 目前应用最广，安全性最高的呢，当然就是验证码登陆啦…… 虽然只有4-6位数的验证码（部分重视安全的可达8位） 但实际上也是一种一次性密匙。 银行系统、网络支付、政府机关网站近些年都逐步推广和应用手机/邮箱验证码登陆，归根结底还是因为安全……  言归正传，我们还是回到战争年代，当年还没有电脑，那群精通密码学的人在发明一次性密钥之后，他们做了什么呢？ 1857年，有一个叫塞勒斯·韦斯特·菲尔德，想从海底拉一条光缆从北美洲拉到欧洲，也就是从美国拉到英国，故事挺曲折的，有兴趣的可以自行去深究。后来就拉好了，电报就可以跨洋打了，当时英国女王还给美国总统发了个电报。 然后西联国际汇款公司，发现了商机，他们开通了跨洋汇款业务、股票报价购买业务等…… 实际操作很简单，我在伦敦和纽约各有一家银行，在纽约收到了1万块，加500块手续费，然后我电报发给我在伦敦银行当行长的姐夫，内容就是： 10000 from Mr. Wang to Mrs. Wang by NY（纽约收到王先生寄给王太太的1万块） 毕竟山高水远，伦敦方面不知道纽约银行是否被劫持，也不知道发电报的是不是本人，所以通过一次性密钥加密，是非常有必要的。万一王先生挟持了我，偷偷在我电报机上多加几个0，那我不是辛苦奋斗的家业，转瞬变成负债破产。 一次性密钥在商业上的运用，又给了战争以启发， 随着工业革命的到来，以及两个重要人物的诞生，密码学又有了新的突破。 ----------------------第三次追更------------ 这两个人也是密码学绕不开的大神，谢尔比乌斯和图灵。 谢尔比乌斯，这是一个注定近代无法被传颂的名字。因为他代表着邪恶势力。 1918年，德国人亚瑟·谢尔比乌斯申请了一项专利，恩尼格玛密码机（ENIGMA）。 恩尼格玛的出现意味着密码学进入一个全新的时代，人力的计算已经成为过去式。 Enigma的加密核心，是3个转轮。 在每个转轮上，都标记着26个字母，经过巧妙的设计，每次转轮旋转的时候，它都会停留在某个字母位置上。 这些字母，就代表着偏移量，也就是多宝密码的关键词。 巧妙之处在于，每输入一个字母，这些齿轮就会转动一次，关键词就会发生新的改变，这样一封密函写下来，关键词已经变换了无数次！ 比如输入：aaaaaaaaaaaaaaaa 加密后可能变成了：qlsksdfoquowquen 毫无逻辑可言！ 哪怕是再厉害的人脑，也不可能反向推算出原文！ 而接收方如何破解信息呢？ 秘密就在恩尼格玛的初始状态时，转轮上字母的显示。 比如：在输入前，转轮上的字母分别是X、Y、Z，那就可以认为此封密函的初始机器码为XYZ，只需要将接收方的恩尼格玛调试到Z、Y、X，然后就能逆向破解出原文。 那时候的德军科技发展迅猛，希特勒征服世界的野心逐渐显露，但是仅凭德国一国之力，别说征服世界，就是走出欧洲都够呛。 但科技就是战斗力！ 希特勒在前期的战斗中领悟出闪电战的战术，只要掌握先机，闪电出击，就能出奇制胜！ 在闪电战中，最重要的就是情报！也就是军机！ 希特勒收购了恩尼格玛的专利，安排德军通讯部门长官鲁道夫·施密特将所有情报部门配置妥当，又将恩尼格玛进行了一些改进，第二个转子会与第三个转子一起转动，这样一台恩尼格玛密码机就会拥有26×25×26 = 16,900个组合。 在历史上，每条军机信息的长度一般都在几百个字母左右，所以在同一条信息中输入同样的单词产生同样的密码的几率是很小的，比如全篇都在输入kill his mother，结果出来的也会是不同的乱码。 然后情报人员也会配备一个专门的机码本，里面是每天的机器码设置。 只要按照日期调试机器码，就能破译出每天收到的情报。 而这个机码本的重要程度，基本上就是“人在本在，人死本毁“。 德军凭借加密通讯和闪电战术，在欧洲战场战无不胜攻无不克！ 但是，希特勒万万没有想到，他的情报处长官鲁道夫·施密特有一个穷困潦倒的弟弟汉斯提罗·施密特，这个汉斯提罗想是当兵被裁军退伍，后是进厂打工被下岗，混得可谓是惨兮兮，不得已投奔大哥，大哥就凭借关系给他安排在了恩尼格玛情报中心。 哪知道汉斯提罗·施密特其实打心里觉得：德意志对我不公！我为师座卖过命,我为党国立过功，然而一分钱没有，混的这么穷困潦倒！我不服！恩尼格玛不是高级吗？不是牛逼吗？我要报复我的国家！ 然后汉斯提罗·施密特售价1万马克，把恩尼格玛的线路图卖给了法国情报局。 法国和波兰有军事合作，波兰有专门的密码处，法国就把这些情报都转给了波兰的密码处破解。 波兰密码处有一个年轻人，马里安·雷杰夫斯基，他就喜欢鼓捣这个，他复制出恩尼格玛，仔细研究截获的德军情报，最后终于找到了不用机码而破解情报的秘诀。 因为电路的设置，每次转轮转动是有据可查的，虽然每按一次a出来的都是不同的字母，但是单独研究某一个转轮，循环一圈过后，又会陷入相同的模式。 到了1934年，波兰造了几十台ENIGMA，雷杰夫斯基就用恩尼格玛组装出了一台大机器——炸弹。 通过逆向思维，把几台恩尼格码组装到一起，在排列组合后得到情报原文，不需要知道机器码就能破译，这让波兰人悄悄地领先了好几年。 但波兰人也挺鸡贼，悄悄咪咪也不透露消息，甚至已经破译了德国高层要访问波兰，还装作不知道，受宠若惊地去迎接。但随着破译的情报越来越多（据说有十几万封），波兰也慢慢发现了德国的布局原来是想征服世界，这下波兰慌了，然后把法国英国的高层军官叫来，揭开了炸弹机身上的幕布。 法国和英国人惊呆了，他们原本一直觉得恩尼格码不可能被破解。 但万万没有想到的是，可能这些人里面，又有德国的卧底。 炸弹机面世后，德军的恩尼格码机器进行了一次升级，首先就是从3个转轮增加到了4个转轮，甚至给日本也提供了4转轮版本，还有很多改进版本，比如把原本三转轮的字母换成数字，比如封装版四转轮。 四转轮比起三转轮，可不是简单的多26种变换，最终生产的密码是几何倍增。 这下波兰人傻眼了，法国人傻眼了，但是有一个英国人，正在悄悄精通密码学…… 他就是玩计算机都得喊爸爸的——艾伦·麦席森·图灵 图灵在炸弹机的基础上，迸发出一种全新的解密思维，也就是计算机思维。 这里要提到德国人的一个严谨的习惯，也就是每天早上6点发送的情报中，总会有对天气的报告，而在每一封情报的结尾，都会加一句希特勒万岁。 通过对炸弹机的改进，以“Wetter”为突破口，终于破解了德军的加密机器。因为破译了德军军舰布置、进攻计划、飞机部署导致二战提前至少2年结束。关于祖师爷的事迹我就不多说了，大家有兴趣可以去看看相关文献和电影之类。 这里值得一提的是，公认的第一台通用计算机是ENIAC（1946年美国），但是也有一部分人认为，图灵曾经参与研究的CO-LOSSUS(巨人)机应该算第一台通用计算机（1943年英国）。 三个小故事： 1、1940年，破译得德军情报表明德国人会在11月14日进行大规模空袭。地点为包括伦敦、考文垂在内的三个可能地点，最终英国人还是没有能确认地点，未能阻止考文垂大轰炸的发生。 但是有一种说法，说丘吉尔已经确认了空袭地点，但出于不暴露我们已破解你的密码这个“超级机密”的考虑，未采取预防措施，当时丘吉尔正在前往迪奇利公园的路上被告知伦敦将会被空袭，于是折回唐宁街十号准备在空防部顶楼亲眼观看空袭。 2、图灵被认为是计算机的鼻祖，但是他是个gay，不符合当时英国的法律和社会环境，后来被实行药物阉割，最终在浴室吃了一口含氰化物的毒苹果而自杀。那个苹果成了Apple的logo。  3、一代枭雄恩尼格玛，在破解后退出了战争的舞台，但是有发明家通过他的三个转轮，发明出一种新的风靡全球的东西，游戏机的拉霸。  计算机的发明，让密码学进入了一个全新的时代，它的出现，直接让之前的对加密的研究被称之为“古典密码学”或者“经典密码学”。 庞大的计算量、超高的计算速度，让加密呈现出了千姿百态，衍生出各种流派。 从历史的长河看出，每一次密码学的更新跌代，都是一群高智商的人在博弈，而在现在，那些高智商的人如何交手？21世纪那些精通密码学的人怎么设置密码呢？ 3301蝉这个组织，可以说是最顶尖的那一波密码学玩家了。 太长了，不准备更新了，就此打住吧！ 