7.6 密码设置与安全性分析(project)(安全意识)

这篇具有很好参考价值的文章主要介绍了7.6 密码设置与安全性分析(project)(安全意识)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

 

第1关 随机生成一个n位密码

第2关 将随机生成的n位密码MD5加密

第3关 生成黑客密码字典

第4关 模拟碰撞破解MD5密码

第5关 检查密码是否泄漏


第1关 随机生成一个n位密码

本关任务:编写一个能随机生成一个n位密码的小程序。

1pass01.txt 1pass02.txt 1pass03.txt

Linux密码中支持的特殊字符有:" ~ @#^*%/.+:;=";windows密码中支持的特殊字符有:" ~ @/+:"; 本关要求从“十进制数字+小写大写字母+windows密码中支持的特殊字符”中随机取m个不重复的字符拼接为一个表示字符串做为密码,m是用户输入的整数,同时也用整数m做随机数的种子。

import string
import random


def generate_password(n: int) -> str:
    """接受一下整数,产生一个n位的密码,返回字符串
    windows密码中支持的特殊字符有:"~@_/+:"
    Linux密码中支持的特殊字符有:"~@#_^*%/.+:;="
    """
    # 补充你的代码
    content = string.digits + string.ascii_letters +"~ @/+:" #4SZ1qXQv h  4SZ1qtQv/h
    result = ''.join(random.sample(content, n))
    return result

if __name__ == '__main__':
    m = int(input())
    random.seed(m)
    print(generate_password(m))

第2关 将随机生成的n位密码MD5加密

本关任务:编写一个将随机生成的n位密码MD5加密的小程序。

相关知识

为了完成本关任务,你需要掌握:

1.hashlib包 2.hashlib.md5()

import string
import random
import hashlib

def generate_password(n: int) -> str:
    """接受一下整数,产生一个n位的密码,返回字符串
    windows密码中支持的特殊字符有:"~@_/+:"
    Linux密码中支持的特殊字符有:"~@#_^*%/.+:;="
    """
    # 补充你的代码
    content = string.digits + string.ascii_letters +"~ @/+:" #4SZ1qXQv h  4SZ1qtQv/h
    result = ''.join(random.sample(content, n))
    return result

def make_md5(password: str) -> str:
    """接收一个字符串,用md5加密后转为16进制,返回加密后的字符串"""
    # 补充你的代码
    pass_byte = bytes(password, 'utf-8')
    pass_md5 = hashlib.md5(pass_byte).hexdigest() 
    return pass_md5 


if __name__ == '__main__':
    m = int(input())
    random.seed(m)
    password_str = generate_password(m)
    password_str_md5 = make_md5(password_str)
    # 补充你的代码,输出预期结果
    print(f'产生的密码是:{password_str},MD5加密结果为{password_str_md5}')

第3关 生成黑客密码字典

本关任务:编写一个能生成黑客密码字典的小程序。

import string
import hashlib


def generate_password(n: int) -> str:
    """接受一下整数,产生一个n位的密码,返回字符串
    windows密码中支持的特殊字符有:"~@_/+:"
    Linux密码中支持的特殊字符有:"~@#_^*%/.+:;="
    """
    # 补充你的代码
    content = string.digits + string.ascii_letters +"~ @/+:" #4SZ1qXQv h  4SZ1qtQv/h
    result = ''.join(random.sample(content, n))
    return result


def make_md5(password: str) -> str:
    """接收一个字符串,用md5加密后转为16进制,返回加密后的字符串"""
    # 补充你的代码
    pass_byte = bytes(password, 'utf-8')
    pass_md5 = hashlib.md5(pass_byte).hexdigest() 
    return pass_md5 


def generate_pass_dic(file: str) -> dict:
    """接收文件名,以其md5加密结果为键、用文件中的密码为值构建字典,返回字典"""
    # 补充你的代码
    dic = {}
    with open(file) as f:
        content = f.readlines()
    for x in content: # 遍历文件对象
        x = x.strip()
        y =   make_md5(x)
        dic.update({x: y})
    return dic

def output(pass_dic: dict, n: int) -> None:
    """接收密码字典和整数n,按加入顺序输出前n项,无返回值"""
    # 补充你的代码
    dic1 = list(pass_dic.items())
    #print(dic1)
    for i in range(n):
        print(f'密文{dic1[i][1]}对应明文密码为{dic1[i][0]}') 


if __name__ == '__main__':
    m = int(input())
    filename = '/data/bigfiles/1pass00.txt'
    password_dic_md5 = generate_pass_dic(filename)
    output(password_dic_md5, m)

第4关 模拟碰撞破解MD5密码

本关任务:编写一个能生成黑客密码字典的小程序。

因为MD5密码不可逆,不可通过程序解密明文,所以遇到MD5加密的密码时,可行的方法将其MD5加密后的密码与黑客字典中的密文比对,若相同,则字典中的密文对应的字符串就是密码明文。

import hashlib


def make_md5(password: str) -> str:
    """接收一个字符串,用md5加密后转为16进制,返回加密后的字符串"""
    # 补充你的代码
    pass_byte = bytes(password, 'utf-8')
    pass_md5 = hashlib.md5(pass_byte).hexdigest() 
    return pass_md5 


def generate_pass_dic(file: str) -> dict:
    """接收文件名,以其md5加密结果为键、用文件中的密码为值构建字典,返回字典"""
    # 补充你的代码
    dic = {}
    with open(file) as f:
        content = f.readlines()
    for x in content: # 遍历文件对象
        x = x.strip()
        y =   make_md5(x)
        dic.update({x: y})
    return dic


def crack_password(pass_dic: dict, pass_str: str) -> str:
    """接收密码字典和整数n,按加入顺序输出前n项,无返回值"""
    # 补充你的代码
    dic1 = list(pass_dic.items())
    for i in dic1:
        if pass_str ==i[1]:
            return i[0]
   
    
if __name__ == '__main__':
    password_str = input()
    filename = '/data/bigfiles/1pass00.txt'
    password_dic_md5 = generate_pass_dic(filename)
    password = crack_password(password_dic_md5, password_str)
    if password:
        print(f'密文{password_str}的明文是{password}')
    else:
        print(f'密文{password_str}的明文未能破解')

第5关 检查密码是否泄漏

本关任务:编写一个能检查密码是否泄漏的小程序。

本关要求根据文件“1pass00.txt”“1pass01.txt”“1pass02.txt”“1pass03.txt”是泄漏在网络上的用户密码明文,生成一个黑客字典。将文件中的密码明文用MD5加密,用密文做键,明文为值构建字典。用户输入一个明文密码字符串,检查黑客字典中是否存在以确定密码是否被泄漏。文章来源地址https://www.toymoban.com/news/detail-429586.html

import hashlib


def make_md5(password: str) -> str:
    """接收一个字符串,用md5加密后转为16进制,返回加密后的字符串"""
    # 补充你的代码
    pass_byte = bytes(password, 'utf-8')
    pass_md5 = hashlib.md5(pass_byte).hexdigest() 
    return pass_md5 
    


def generate_pass_dic(file: str) -> dict:
    """接收文件名,以其md5加密结果为键、用文件中的密码为值构建字典,返回字典"""
    # 补充你的代码
    dic = {}
    with open(file) as f:
        content = f.readlines()
    for x in content: # 遍历文件对象
        x = x.strip()
        y =   make_md5(x)
        dic.update({x: y})
    return dic


def read_txt() -> dict:
    """无参数,读取多个文件,将其中的密码用md5加密后存于字典"""
    path = '/data/bigfiles/'
    file_ls = ['1pass00.txt', '1pass01.txt', '1pass02.txt', '1pass03.txt']
    # 补充你的代码
    for i in file_ls:
        position = path + "/"+ i 
        return generate_pass_dic(position)


def check_pass(leaked_pass_dic:dict, pass_str_md5: str):
    """检查用户的密码是否在泄漏密码库中存在,存在时返回明文,不存在时返回None"""
    # 补充你的代码
    #print(leaked_pass_dic)
    for i in leaked_pass_dic:
        if password_str == i:
            return password_str
    return False

if __name__ == '__main__':
    password_str = input()
    password_str_md5 = make_md5(password_str)
    leaked_pass_dict = read_txt()
    result = check_pass(leaked_pass_dict, password_str_md5)
    if result:
        print(f'你的密码是{result},你的密码在泄漏密码字典中')
    else:
        print('你的密码安全')

到了这里,关于7.6 密码设置与安全性分析(project)(安全意识)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 商用密码应用安全性评估----技术层面实现

    网络和通信安全        三个密码产品  SSL VPN IPSEC VPN  安全认证网关-----数字证书---双证书-----SM2签名  SM4加密   D 是否使用这些安全产品   A用的算法是否符合国家密码算法要求       K密钥管理是否安全(商用密码产品检测中心认证的)       对象:一般划分根据

    2024年02月16日
    浏览(47)
  • 如何保证登录过程中密码的安全性

    确保密码的安全性是非常重要的,以下是几种常见的方法来提高密码的安全性: 使用加密传输:在密码提交到后端之前,确保使用安全的加密协议(如HTTPS)来加密数据传输,以防止密码被中间人攻击窃取。 密码哈希:在后端接收到密码后,使用密码哈希算法(如SHA-256)对

    2024年02月09日
    浏览(35)
  • 商用密码应用安全性测评机构资质流程

            商用密码应用安全性测评机构(简称密评机构)资质建设相关指导性材料包括:         1、《商用密码应用安全性测评机构能力要求》         2、《商用密码应用安全性测评机构能力评审实施细则(试行)》         3、《商用密码应用安全性测评机构管理办法(

    2024年02月08日
    浏览(32)
  • 商用密码应用与安全性评估要点笔记(密码标准和产品)

    3.5 密码标准和产品 词条 内容 智能IC卡分类 存储器卡,外部可对片内信息任意存储,存放不需要保密的信息 逻辑加密卡,硬件加密逻辑,具备简单的信息处理能力。保密要求较低的场合。 智能CPU卡,如银行卡、门禁卡、护照、身份证、社保卡、手机SIM卡 接触式(多个金属触

    2024年02月09日
    浏览(33)
  • 商用密码应用与安全性评估要点笔记(密码算法ZUC)

    1、ZUC算法简介         ZUC算法属于对称密码算法,具体来说是一种序列密码算法或流密码算法。ZUC算法以中国古代数学家祖冲之首字母命令。         ZUC算法标准包括三个部分:         GMT 0001.1-2012 祖冲之序列密码算法:第1部分:算法描述         GMT 0001.2-201

    2024年02月16日
    浏览(41)
  • 商用密码应用与安全性评估要点笔记(FAQ)

    5 商用密码应用安全性评估FAQ汇编 词条 内容 密钥应用基本要求的等级 一般按照信息系统网络安全等级保护的级别确定。对于未完成网络安全等级保护定级的重要信息系统,其密码应用等级至少为第三级。 【宜】测评指标 系统没有密码应用方案或方案未对【宜】指标明确说

    2024年02月02日
    浏览(75)
  • 商用密码应用与安全性评估要点笔记(SM3密码杂凑算法)

    1、杂凑密码算法         可以对任意长度的消息M进行压缩,输出定长的消息摘要/杂凑值h,表示为h = H(M)。         一般来说,H具备三个性质:         (1)单向性。已知h,试图找打M满足h=H(M)是困难的。         (2)抗第二/二次原像攻击(弱抗碰撞性)。给定M1,试图

    2024年02月01日
    浏览(44)
  • 商用密码应用安全性评估从业人员考核知识点

    1. 密码政策法规(占比10%) 1.1党和国家关于密码工作的方针政策 1.2密码法律法规与规范性文件 1.3涉及密码的网络安全相关法律法规 1.4密码应用政策文件 2. 密码技术基础及相关标准(占比20%) 2.1密码学基础知识 2.2分组密码 2.3序列密码 2.4杂凑密码 2.5公钥密码 2.6实体鉴别协

    2024年02月04日
    浏览(51)
  • 商用密码应用安全性评估(密评)六大基础问题解答

    2021年3月9日,国家市场监管总局、国家标准化管理委员会发布公告,正式发布国家标准GB/T39786-2021《信息安全技术 信息系统密码应用基本要求》,该标准将于2021年10月1日起正式实施。这是贯彻落实我国《密码法》,指导密评工作的一项基础性标准,对于规范和引导信息系统合规、正

    2024年02月16日
    浏览(36)
  • 商用密码应用与安全性评估要点笔记(密评测评方法)

    4.3 密评测评方法 词条 内容 密评方法 对密码算法、密码技术、密码产品和密码服务进行核查。 核查前的工作 确认在信息系统中,应当使用密码保护的资产是否采用了密码技术进行保护(默认情况下按照GB/T39786-2021中对应条款判定),如有不适用,信息系统责任方应当在密码

    2024年02月12日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包