美文网首页百年工匠科普我们的时代
为什么14位的复杂口令字是安全的?

为什么14位的复杂口令字是安全的?

作者: 爱看时事的通信崔 | 来源:发表于2020-12-14 15:11 被阅读0次

    网络安全评估标准中,对口令字的安全要求是:由字母、数字、符号组成的长度不少于14位的复杂口令字。为什么这样的口令字是安全的呢?

    我用Python代码模拟了黑客对这样的口令字进行暴力破解的过程,代码主要包括3点考虑:

    1. 正常情况下,黑客会逐位递增尝试口令字的排列组合;
    2. 键盘上能作为口令字的字符有95个,包括大小写字母、数字和符号;
    3. 世界上最快的计算机是Summit,理论上的峰值运算速度可达每秒20亿亿次。

    由这三点考虑形成了如下代码:

    import math
    
    num_pass_length = 1 # 密码长度,口令字长度由1逐渐增加
    total_time = 0 # 破解时间,0位口令字为0
    num_pass_char = 26 + 26 + 10 + 33 # 95个能作为口令字的字符:包括52个大、小写字母,10个数字,33个符号
    for num_pass_length in range(1,16): # 测试的口令字长度为0到15位
        num_total_path = math.pow(num_pass_char, num_pass_length) # 当前位数的口令字排列组合可能性
        count_tianhe = 2 * math.pow(10, 17) # 最快的计算机理论上的峰值运算速度为20亿亿次/秒
        year_to_sec = 365 * 24 * 60 * 60 # 一年多少秒钟
        need_time_year = num_total_path /year_to_sec /count_tianhe # 当前长度的口令字需要破解的时间
        total_time += need_time_year # 累计破解时长
        if num_pass_length >= 5:
            print("{}位密码,理论上最快{:.3f}年内完全破解".format(num_pass_length, total_time))
    

    结果如下:

    5位密码,理论上最快0.000年内完全破解
    6位密码,理论上最快0.000年内完全破解
    7位密码,理论上最快0.000年内完全破解
    8位密码,理论上最快0.000年内完全破解
    9位密码,理论上最快0.000年内完全破解
    10位密码,理论上最快0.000年内完全破解
    11位密码,理论上最快0.001年内完全破解
    12位密码,理论上最快0.087年内完全破解
    13位密码,理论上最快8.226年内完全破解
    14位密码,理论上最快781.429年内完全破解
    15位密码,理论上最快74235.772年内完全破解
    

    通过结果可以看出,10位以下的口令字安全性很低。而11、12、13位的口令字通过周期更换的方法,可以被认为比较安全。

    至于14位以上的复杂口令字,因为破解13位以内的口令字已经需要耗费8年多,所以黑客一般不会对14位以上的复杂口令字进行尝试,那么它当然是安全的!

    相关文章

      网友评论

        本文标题:为什么14位的复杂口令字是安全的?

        本文链接:https://www.haomeiwen.com/subject/kpmvgktx.html