分类
互联网

如何生成超级强度的密码(退出人人与QQ)

本文旨在对那些想退出QQ, 退出校内的人提供一种生成超强度的密码, 自己指定是记不住的了. 如果要解密也得费上好几分钟(事实上也不是那么难的, 如果你用软件的话):
第一步: 用Hash加密指定字符串, 请在下面输入你便于记忆的”明文”, 例如: 退出上述平台的原因. 得到”密文”.

Input
Calculate
Result

第二步: 将上述密文的小写字母转为大写字母.
第三步: 用下面的随机扰乱码加密第二步的结果, 注意这里用的是数字0-9以及字母a-z, A-Z的ASCII码, 我们知道0-9对应的是48-57; 而A-Z对应的是65-90;a-z对应的是97-122;

cipher=
{88 -> 48, 49 -> 49, 55 -> 50, 89 -> 51, 116 -> 52, 79 -> 53, 73 -> 54, 99 -> 55, 74 -> 56, 86 -> 57, 52 -> 58, 
 97 -> 59, 53 -> 60, 114 -> 61, 61 -> 62, 91 -> 63, 113 -> 64, 106 -> 65, 103 -> 66, 101 -> 67, 69 -> 68, 
 84 -> 69, 60 -> 70, 93 -> 71, 70 -> 72, 82 -> 73, 102 -> 74, 77 -> 75, 57 -> 76, 85 -> 77, 67 -> 78, 117 -> 79,
 50 -> 80, 65 -> 81, 76 -> 82, 81 -> 83, 110 -> 84, 121 -> 85, 51 -> 86, 83 -> 87, 58 -> 88, 54 -> 89, 108 -> 90,
 107 -> 91, 115 -> 92, 78 -> 93, 104 -> 94, 80 -> 95, 92 -> 96, 109 -> 97, 64 -> 98, 48 -> 99, 87 -> 100,
 75 -> 101, 111 -> 102, 95 -> 103, 68 -> 104, 119 -> 105, 62 -> 106, 96 -> 107, 112 -> 108, 122 -> 109,
 72 -> 110, 120 -> 111, 100 -> 112, 90 -> 113, 71 -> 114, 94 -> 115, 105 -> 116, 59 -> 117, 63 -> 118, 
 118 -> 119, 98 -> 120, 66 -> 121, 56 -> 122}

第四步:上述替换完全的就是最终的密码. 如果你要解密, 当然就是把上述过程你回去试一遍. 事实上, 这基本是不可能的, 因为我们知道解Hash5的密文不是一件容易的事. 而那个随机扰乱的加密主要是为了自己解密时费事.

至此, 我想你明白了如何利用一个很简单的密码生成高强度的密码, 我举例如下:

  • 假设我们的简单密码是:123456
  • 经过第一步后得到的是:e10adc3949ba59abbe56e057f20f883e
  • 经过第二步转为大写字母后是:E10ADC3949BA59ABBE56E057F20F883E
  • 经过第三步的随机扰乱后的密码是:D1cQhNVL:LyQ<LQyyD<YDc<2HPcHzzVD

附件

  • ASCII码对照表
  • Mathematica下的对应代码
    1. 第一、二步中生成MD5并将其自动转为大写字母代码

      IntegerString[Hash["123456", "MD5"], 16, 32]//ToUpperCase

    2. 第三步中使用扰乱码加密的过程:

      enc = FromCharacterCode[ToCharacterCode[InputString[]] /. cipher]

      其中cipher就是第三步定义的那个数组. 运行时会弹出要求输入的字符串, 这里应该(对应于123456)输入的是:E10ADC3949BA59ABBE56E057F20F883E
      请注意, 本网页中给出的Hash5加密和Mathematica的算法是不同的, 尽管对数字而言是一样的.

    3. 对第三步取逆的过程:

      FromCharacterCode[ToCharacterCode[enc] /. Map[Reverse, cipher]]

    4. 随机生成不同于第三步中扰乱码的过程:

      {b, e} = Sort[ToCharacterCode["0z"]];
      cipher = Thread[RandomSample[Range[b, e]] ->Range[b, e]]

发表回复

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据