windows下hashcat利用GPU显卡性能破解密码
由于一般密码破解工具的破解速度实在是太慢,而且支持的密码破解协议也不多,暴力破解的话,有的密码1年时间也破不出来,用字典跑的话必须要明文密码在字典里才行,而且密码字典太大的话,也很浪费时间,跑不出来也是很常见的事情,下面推荐一款世界上破解密码速度最快的工具,hashcat,hashcat github地址,选择最新版的下载即可。
hashcat支持多种计算核心:
GPUCPUAPUDSPFPGACoprocessor
下载官方NVIDA驱动程序到NVIDA官网下载与自己电脑显卡型号相对应的显卡驱动程序如图所示,然后根据提示一步步安装即可。
安装完成后,重启电脑即可。
(NAVIDA的显卡只需要安装官方驱动即可,已经内含HASHCAT破解密码所需的GPU运算工具。记得使用上图官方下载的显卡驱动,不要使用windows自带的显卡驱动。)
测试hashcat是否能利用gpu运算速度来破解密码1 hashcat64.exe -b
基准测试hashcat破解各种密码散列的速度。
检查设置如果已正确安装了GPU能够看到它并会列出其属性和使用的驱动程序信息。
hashcat详细命令及使用普通
1 -m, —hash-type=NUM 哈希类别,其NUM值参考其帮助信息下面的哈希类别值,其值为数字。如果不指定m值则默认指md5,例如-m 1800是sha512 Linux加密。2 3 -a, –attack-mode=NUM 攻击模式,其值参考后面对参数。“-a 0”字典攻击,“-a 1” 组合攻击;“-a 3”掩码攻击。4 5 -V, —version 版本信息6 7 -h, –help 帮助信息。8 9 –quiet 安静的模式, 抑制输出基准测试
1 -b, –benchmark 测试计算机破解速度和显示硬件相关信息
杂项
1 –hex-salt salt值是用十六进制给出的 2 3 –hex-charset 设定字符集是十六进制给出 4 5 –runtime=NUM 运行数秒(NUM值)后的中止会话 6 7 –status 启用状态屏幕的自动更新 8 9 –status-timer=NUM 状态屏幕更新秒值10 11 –status-automat 以机器可读的格式显示状态视图12 13 –session 后跟会话名称,主要用于中止任务后的恢复破解。
文件
1 -o, –outfile=FILE 定义哈希文件恢复输出文件 2 3 –outfile-format=NUM 定义哈希文件输出格式,见下面的参考资料 4 5 –outfile-autohex-disable 禁止使用十六进制输出明文 6 7 -p, –separator=CHAR 为哈希列表/输出文件定义分隔符字符 8 9 –show 仅仅显示已经破解的密码10 11 –left 仅仅显示未破解的密码12 13 –username 忽略hash表中的用户名,对linux文件直接进行破解,不需要进行整理。14 15 –remove 移除破解成功的hash,当hash是从文本中读取时有用,避免自己手工移除已经破解的hash16 17 –stdout 控制台模式18 19 –potfile-disable 不写入pot文件20 21 –debug-mode=NUM 定义调试模式(仅通过使用规则进行混合),参见下面的参考资料22 23 –debug-file=FILE 调试规则的输出文件(请参阅调试模式)24 25 -e, –salt-file=FILE 定义加盐文件列表26 27 –logfile-disable 禁止logfile
资源
1 -c, –segment-size=NUM 字典文件缓存大小(M)2 3 -n, –threads=NUM 线程数4 5 -s, –words-skip=NUM 跳过单词数6 7 -l, –words-limit=NUM 限制单词数(分布式)
规则
1 -r, –rules-file=FILE 使用规则文件: -r 1.rule,2 3 -g, –generate-rules=NUM 随机生成规则4 5 –generate-rules-func-min= 每个随机规则最小值6 7 –generate-rules-func-max=每个随机规则最大值8 9 –generate-rules-seed=NUM 强制RNG种子数
自定义字符集
1 -1, –custom-charset1=CS 用户定义的字符集2 3 -2, –custom-charset2=CS 例如:4 5 -3, –custom-charset3=CS –custom-charset1=?dabcdef : 设置?1 为0123456789abcdef6 7 -4, –custom-charset4=CS -2mycharset.hcchr : 设置 ?2 包含在mycharset.hcchr
攻击模式
1 –toggle-min=NUM 在字典中字母的最小值 2 3 –toggle-max=NUM 在字典中字母的最大值 4 5 –increment 使用增强模式 6 7 –increment-min=NUM 增强模式开始值 8 9 –increment-max=NUM 增强模式结束值10 11 –perm-min=NUM 过滤比NUM数小的单词12 13 –perm-max=NUM 过滤比NUM数大的单词14 15 -t, –table-file=FILE 表文件16 17 –table-min=NUM 在字典中的最小字符值18 19 –table-max=NUM 在字典中的最大字符值20 21 –pw-min=NUM 如果长度大于NUM,则打印候选字符22 23 –pw-max=NUM 如果长度小于NUM,则打印候选字符24 25 –elem-cnt-min=NUM 每个链的最小元素数26 27 –elem-cnt-max=NUM 每个链的最大元素数28 29 –wl-dist-len 从字典表中计算输出长度分布30 31 –wl-max=NUM 从字典文件中加载NUM个单词,设置0禁止加载。32 33 –case-permute 在字典中对每一个单词进行反转
参考
1 = hash[:salt]2 = plain 明文3 = hash[:salt]:plain4 = hex_plain5 = hash[:salt]:hex_plain6 = plain:hex_plain7 = hash[:salt]:plain:hex_plain8 = crackpos9 = hash[:salt]:crackpos10 = plain:crackpos11 = hash[:salt]:plain:crackpos12 = hex_plain:crackpos13 = hash[:salt]:hex_plain:crackpos14 = plain:hex_plain:crackpos15 = hash[:salt]:plain:hex_plain:crackpos
调试模式输出文件 (for hybrid mode only, by using rules):
1 = save finding rule2 = save original word3 = save original word and finding rule4 = save original word, finding rule andmodified plain
内置的字符集:
1 ?l = abcdefghijklmnopqrstuvwxyz 代表小写字母 2 3 ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ 代表大写字母 4 5 ?d = 0123456789 代表数字 6 7 ?s = !”#$%&’()*+,-./:;?@[]^_`{|}~ 代表特殊字符 8 9 ?a = ?l?u?d?s 大小写数字及特殊字符的组合10 11 ?b = 0×00 – 0xff
攻击模式
1 0 = Straight (字典破解) 2 3 1 = Combination (组合破解) 4 5 2 = Toggle-Case (大小写转换) 6 7 3 = Brute-force(掩码暴力破解) 8 9 4 = Permutation(序列破解)10 11 5 = Table-Lookup(查表破解)12 13 6 = Hybrid dict + mask 字典加掩码破解14 15 7 = Hybrid mask + dict 掩码+字典破解16 17 8 = Prince(王子破解)
哈希类型有关哈希具体值示例可以参考网址
1 0 = MD5 2 3 10 = md5($pass.$salt) 4 5 20 = md5($salt.$pass) 6 7 30 = md5(unicode($pass).$salt) 8 9 40 = md5($salt.unicode($pass)) 10 11 50 = HMAC-MD5 (key = $pass) 12 13 60 = HMAC-MD5 (key = $salt) 14 15 100 = SHA1 16 17 110 = sha1($pass.$salt) 18 19 120 = sha1($salt.$pass) 20 21 130 = sha1(unicode($pass).$salt) 22 23 140 = sha1($salt.unicode($pass)) 24 25 150 = HMAC-SHA1 (key = $pass) 26 27 160 = HMAC-SHA1 (key = $salt) 28 29 200 = MySQL323 30 31 300 = MySQL4.1/MySQL5 32 33 400 = phpass, MD5(WordPress), MD5(phpBB3),MD5(Joomla) 34 35 500 = md5crypt, MD5(Unix), FreeBSD MD5,Cisco-IOS MD5 36 37 900 = MD4 38 39 1000 = NTLM 40 41 1100 = Domain Cached Credentials (DCC), MSCache 42 43 1400 = SHA256 44 45 1410 = sha256($pass.$salt) 46 47 1420 = sha256($salt.$pass) 48 49 1430 = sha256(unicode($pass).$salt) 50 51 1431 = base64(sha256(unicode($pass))) 52 53 1440 = sha256($salt.unicode($pass)) 54 55 1450 = HMAC-SHA256 (key = $pass) 56 57 1460 = HMAC-SHA256 (key = $salt) 58 59 1600 = md5apr1, MD5(APR), Apache MD5 60 61 1700 = SHA512 62 63 1710 = sha512($pass.$salt) 64 65 1720 = sha512($salt.$pass) 66 67 1730 = sha512(unicode($pass).$salt) 68 69 1740 = sha512($salt.unicode($pass)) 70 71 1750 = HMAC-SHA512 (key = $pass) 72 73 1760 = HMAC-SHA512 (key = $salt) 74 75 1800 = SHA-512(Unix) 76 77 2400 = Cisco-PIX MD5 78 79 2410 = Cisco-ASA MD5 80 81 2500 = WPA/WPA2 82 83 2600 = Double MD5 84 85 3200 = bcrypt, Blowfish(OpenBSD) 86 87 3300 = MD5(Sun) 88 89 3500 = md5(md5(md5($pass))) 90 91 3610 = md5(md5($salt).$pass) 92 93 3710 = md5($salt.md5($pass)) 94 95 3720 = md5($pass.md5($salt)) 96 97 3800 = md5($salt.$pass.$salt) 98 99 3910 = md5(md5($pass).md5($salt))100 101 4010 = md5($salt.md5($salt.$pass))102 103 4110 = md5($salt.md5($pass.$salt))104 105 4210 = md5($username.0.$pass)106 107 4300 = md5(strtoupper(md5($pass)))108 109 4400 = md5(sha1($pass))110 111 4500 = Double SHA1112 113 4600 = sha1(sha1(sha1($pass)))114 115 4700 = sha1(md5($pass))116 117 4800 = MD5(Chap), iSCSI CHAP authentication118 119 4900 = sha1($salt.$pass.$salt)120 121 5000 = SHA-3(Keccak)122 123 5100 = Half MD5124 125 5200 = Password Safe SHA-256126 127 5300 = IKE-PSK MD5128 129 5400 = IKE-PSK SHA1130 131 5500 = NetNTLMv1-VANILLA / NetNTLMv1-ESS132 133 5600 = NetNTLMv2134 135 5700 = Cisco-IOS SHA256136 137 5800 = Android PIN138 139 6300 = AIX {smd5}140 141 6400 = AIX {ssha256}142 143 6500 = AIX {ssha512}144 145 6700 = AIX {ssha1}146 147 6900 = GOST, GOST R 34.11-94148 149 7000 = Fortigate (FortiOS)150 151 7100 = OS X v10.8+152 153 7200 = GRUB 2154 155 7300 = IPMI2 RAKP HMAC-SHA1156 157 7400 = sha256crypt, SHA256(Unix)158 159 7900 = Drupal7160 161 8400 = WBB3, Woltlab Burning Board 3162 163 8900 = scrypt164 165 9200 = Cisco $8$166 167 9300 = Cisco $9$168 169 9800 = Radmin2170 171 10000 = Django (PBKDF2-SHA256)172 173 10200 = Cram MD5174 175 10300 = SAP CODVN H (PWDSALTEDHASH) iSSHA-1176 177 11000 = PrestaShop178 179 11100 = PostgreSQL Challenge-ResponseAuthentication (MD5)180 181 11200 = MySQL Challenge-Response Authentication(SHA1)182 183 11400 = SIP digest authentication (MD5)184 185 99999 = Plaintext
特殊哈希类型
1 11 = Joomla < 2.5.18 2 3 12 = PostgreSQL 4 5 21 = osCommerce, xt:Commerce 6 7 23 = Skype 8 9 101 = nsldap, SHA-1(Base64), Netscape LDAPSHA10 11 111 = nsldaps, SSHA-1(Base64), Netscape LDAPSSHA12 13 112 = Oracle S: Type (Oracle 11+)14 15 121 = SMF > v1.116 17 122 = OS X v10.4, v10.5, v10.618 19 123 = EPi20 21 124 = Django (SHA-1)22 23 131 = MSSQL(2000)24 25 132 = MSSQL(2005)26 27 133 = PeopleSoft28 29 141 = EPiServer 6.x v434 35 1711 = SSHA-512(Base64), LDAP {SSHA512}36 37 1722 = OS X v10.738 39 1731 = MSSQL(2012 & 2014)40 41 2611 = vBulletin < v3.8.542 43 2612 = PHPS44 45 2711 = vBulletin > v3.8.546 47 2811 = IPB2+, MyBB1.2+48 49 3711 = Mediawiki B type50 51 3721 = WebEdition CMS52 53 7600 = Redmine Project Management Web App
第四步:hashcat破解密码规则示例
1 (1)字典攻击 2 3 -a 0 password.lst 4 (2)1到8为数字掩码攻击 5 6 -a 3 --increment --increment-min 1--increment-max 8 ?d?d?d?d?d?d?d?d –O 7 ?d代表数字,可以换成小写字母?l,大写字母?u,特殊字符?s,大小写字母+特殊字符?a,–O表示最优化破解模式,可以加该参数,也可以不加该参数。 8 9 (3)8为数字攻击 10 11 -a 3 ?d?d?d?d?d?d?d?d 12 同理可以根据位数设置为字母大写、小写、特殊字符等模式。 13 14 (4)自定义字符 15 现在纯数字或者纯字母的密码是比较少见的,根据密码专家对泄漏密码的分析,90%的个人密码是字母和数字的组合,可以是自定义字符了来进行暴力破解,Hashcat支持4个自定义字符集,分别是 -1 -2 -3 -4。定义时只需要这样-2 ?l?d ,然后就可以在后面指定?2,?2表示小写字母和数字。这时候要破解一个8位混合的小写字母加数字: 16 17 Hashcat.exe -a 3 –force -2 ?l?d hassh值或者hash文件 ?2?2?2?2?2?2?2?2 18 例如破解dz小写字母+数字混合8位密码破解: 19 20 Hashcat -m 2611 -a 3 -2 ?l?d dz.hash ?2?2?2?2?2?2?2?2 21 (5)字典+掩码暴力破解 22 Hashcat还支持一种字典加暴力的破解方法,就是在字典前后再加上暴力的字符序列,比如在字典后面加上3为数字,这种密码是很常见的。使用第六种攻击模式: 23 24 a-6 (Hybrid dict + mask) 25 如果是在字典前面加则使用第7中攻击模式也即( a-7 = Hybridmask + dict),下面对字典文件加数字123进行破解: 26 27 H.exe -a 6 ffe1cb31eb084cd7a8dd1228c23617c8 password.lst ?d?d?d 28 假如ffe1cb31eb084cd7a8dd1228c23617c8的密码为password123,则只要password.lst包含123即可 29 30 (6)掩码+字典暴力破解 31 32 H.exe -a 7 ffe1cb31eb084cd7a8dd1228c23617c8 password.lst ?d?d?d 33 假如ffe1cb31eb084cd7a8dd1228c23617c8的密码为123password,则只要password.lst包含password即可。 34 35 (7)大小写转换攻击,对password.lst中的单词进行大小写转换攻击 36 37 H.exe-a 2 ffe1cb31eb084cd7a8dd1228c23617c8 password.lst 38 EXAMPLES 39 (1)8位数字破解 40 41 Hashcat64-m 9700 hash -a 3 ?d?d?d?d?d?d?d?d -w 3 –O 42 (2)1-8位数字破解 43 44 Hashcat-m 9700 hash -a 3 --increment --increment-min 1--increment-max 8 ?d?d?d?d?d?d?d?d 45 (3)1到8位小写字母破解 46 47 Hashcat-m 9700 hash -a 3 --increment --increment-min 1--increment-max 8 ?l?l?l?l?l?l?l?l 48 (4)8位小写字母破解 49 50 Hashcat-m 9700 hash -a 3 ?l?l?l?l?l?l?l?l -w 3 –O 51 (5)1-8位大写字母破解 52 53 Hashcat-m 9700 hash -a 3 --increment --increment-min 1--increment-max 8 ?u?u?u?u?u?u?u?u 54 (6)8位大写字母破解 55 56 Hashcat-m 9700 hash -a 3 ?u?u?u?u?u?u?u?u -w 3 –O 57 (7)5位小写+ 大写+数字+特殊字符破解 58 59 Hashcat-m 9700 hash -a 3 ?b?b?b?b?b -w 3 60 (8)使用字典进行破解 61 使用password.lst字典进行暴力破解,-w 3参数是指定电力消耗 62 63 Hashcat -m 9700 -a 0 -w 3 hash password.lst 64 在执行破解成功后,hashcat会自动终止破解,并显示破解状态为Cracked,Recvoered中也会显示是否破解成功. 65 66 破解known_hosts中的IP地址 67 经过研究发现known_hosts中会对连接的IP地址进行HMAC SHA1加密,可以通过hexhosts攻击进行转换,然后通过hashcat进行暴力破解,其密码类型为160(HMAC-SHA1 (key = $salt))。 68 69 (1)计算HMAC SHA1值 70 71 gitclone https://github.com/persona5/hexhosts.git 72 cdhexhosts 73 gcchexhosts.c -lresolv -w -o hexhosts 74 ./hexhosts 75 获取known_hosts的HMAC SHA1加密值: 76 77 注意:known_hosts值一定要正确,可以将known_hosts文件复制到hexhosts文件目录。 78 79 (2)组合攻击暴力破解 80 81 hashcat-a 1 -m 160 known_hosts.hash ips_left.txt ips_right.txt --hex-salt 82 组合攻击是将ips_left.txt和ips_right.txt进行组合,形成完整的IP地址进行暴力破解。 83 84 ips_left.txt和ips_right.txt文件可以用以下代码进行生成: 85 86 ip-gen.sh: 87 88 89 90 for a in `seq 0 255` 91 92 do 93 94 for b in `seq0 255` 95 96 do 97 98 echo"$a.$b." >> ips_left.txt 99 100 echo"$a.$b" >> ips_right.txt101 102 done103 104 done105 (3)使用掩码进行攻击106 107 hashcat -a 3 -m 160 known_hosts.hash ipv4.hcmask--hex-salt108 ipv4.hcmask文件内容可在此站下载。109 110 破解md5加密的IP地址111 在CDN等网络或者配置中往往会对IP地址进行MD5加密,由于其位数3×4+3(xxx.xxx.xxx.xxx)=17位,通过正常的密码破解其时间耗费非常长,但通过分析其IP地址的规律,发现其地址XXX均为数字,因此可以通过hashcat的组合和掩码进行攻击。112 113 hashcat-a 1 –m 0 ip.md5.txt ips_left.txt ips_right.txt114 115 hashcat -a1 -m 0 ip.md5.txt ipv4.hcmask116 另外在F5的cookie中会对其IP地址进行加密,可以参考的破解代码如下:117 118 import struct119 120 cookie = "1005421066.20736.0000"121 122 (ip,port,end)=cookie.split(".")123 124 (a,b,c,d)=[ord(i) for i in struct.pack("i",int(ip))]125 126 print "Decoded IP: %s %s %s %s" % (a,b,c,d)127 128 Decoded IP: 10.130.237.59129 破解技巧总结130 在使用GPU模式进行破解时,可以使用-O参数自动进行优化131 132 暴力破解一条md5值133 (1)9位数字破解134 135 Hashcat64.exe-a 3 --force d98d28ca88f9966cb3aaefebbfc8196f ?d?d?d?d?d?d?d?d?d136 单独破解一条md5值需要加force参数137 138 (2)9位字母破解139 140 Hashcat64.exe-a 3 --force d98d28ca88f9966cb3aaefebbfc8196f ?l?l?l?l?l?l?l?l?l141 破解带盐discuz密码142 (1)数字破解143 7位数字,7秒时间破解完成任务。144 145 Hashcat64.exe-a 3 --force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?d?d?d?d?d?d?d146 8位数字破解,9秒时间破解完成任务。:147 148 Hashcat64.exe-a 3 --force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?d?d?d?d?d?d?d?d149 9位数字破解,9秒时间破解完成任务。150 151 Hashcat64.exe-a 3 --force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?d?d?d?d?d?d?d?d?d152 字母破解153 (1)6位小写字母154 155 Hashcat64.exe-a 3 --force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?l?l?l?l?l?l156 (2)7位小写字母157 158 Hashcat64.exe-a 3 --force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?l?l?l?l?l?l?l159 (3)8位小写字母160 161 Hashcat64.exe-a 3 --force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?l?l?l?l?l?l?l?l 9分钟左右完成破解任务162 (4)9位小写字母163 164 Hashcat64.exe-a 3 --force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?l?l?l?l?l?l?l?l?l -O165 字母加数字166 Hashcat64.exe-a 3 --force -m 2611 -2 ?d?l ffe1cb31eb084cd7a8dd1228c23617c8:f56463?2?2?2?2?2?2?2167 (3)7位大写字母168 169 Hashcat64.exe-a 3 –force –m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?u?u?u?u?u?u?u170 (4)6到8位数字破解171 172 Hashcat64.exe-a 3 –force –m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463--increment --increment-min 6 --increment-max 8 ?l?l?l?l?l?l?l?l173 自定义破解174 (1)使用数字加字母混合6位进行破解175 176 Hashcat64.exe-a 3 --force -m 2611 -2 ?d?l ffe1cb31eb084cd7a8dd1228c23617c8:f56463?2?2?2?2?2?2 -O177 (2)使用数字加字母混合7位进行破解,破解时间4分16秒178 179 Hashcat64.exe-a 3 --force -m 2611 -2 ?d?l ffe1cb31eb084cd7a8dd1228c23617c8:f56463?2?2?2?2?2?2?2 –O180 (3)使用数字加字母混合8位进行破解181 182 Hashcat64.exe-a 3 --force -m 2611 -2 ?d?l ffe1cb31eb084cd7a8dd1228c23617c8:f56463?2?2?2?2?2?2?2?2 -O183 字典破解模式184 Hashcat64.exe-a 0 --force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 password.lst185 使用字典文件夹下的字典进行破解:186 187 Hashcat32.exe-m 300 mysqlhashes.txt –remove -o mysql-cracked.txt ..dictionaries*188 会话保存及恢复破解189 (1)使用mask文件规则来破解密码190 191 hashcat-m 2611 -a 3 --session mydz dz.hash masks/rockyou-7-2592000.hcmask192 (2)恢复会话193 194 hashcat--session mydz --restore195 掩码破解196 mask规则文件位于masks下,例如D:PentestBoxhashcat-4.1.0masks,执行破解设置为:197 198 masks/8char-1l-1u-1d-1s-compliant.hcmask199 masks/8char-1l-1u-1d-1s-noncompliant.hcmask200 masks/rockyou-1-60.hcmask201 masks/rockyou-2-1800.hcmask202 masks/rockyou-3-3600.hcmask203 masks/rockyou-4-43200.hcmask204 masks/rockyou-5-86400.hcmask205 masks/rockyou-6-864000.hcmask206 masks/rockyou-7-2592000.hcmask207 运用规则文件进行破解208 209 Hashcat -m 300 mysqlhashes.txt–remove -o mysql-cracked.txt ..dictionaries* -r rulesest64.rule210 211 hashcat -m 2611 -a 0 dz.hashpassword.lst -r rulesest64.rule -O212 hashcat参数优化213 考虑到hashcat的破解速度以及资源的分配,我们可以对一些参数进行配置214 1.Workload tuning 负载调优。215 该参数支持的值有1,8,40,80,160216 217 --gpu-accel 160 可以让GPU发挥最大性能。218 2.Gpu loops 负载微调219 该参数支持的值的范围是8-1024(有些算法只支持到1000)。220 221 --gpu-loops 1024 可以让GPU发挥最大性能。222 3.Segment size 字典缓存大小223 该参数是设置内存缓存的大小,作用是将字典放入内存缓存以加快字典破解速度,默认为32MB,可以根据自身内存情况进行设置,当然是越大越块了。224 225 --segment-size 512 可以提高大字典破解的速度。226 LAST:密码设置建议227 使用更长的字符串228 使用更大的字符集字母、数字、符号229 230 不要使用任何可能与你有关的字符作为密码或密码的一部分使用231 232