zoukankan      html  css  js  c++  java
  • 8.13 每日课后作业系列之hashlib shelve xml模块的运用

    """
    1.借助shelve模块,完成将数据
    "week": ["Sun", "Mon", "Tues", "Wed", "Thur", "Fri", "Sat"]
    "person": {"name": "Zero", "age": 8, "height": 180}
    序列化到date.shl文件中
    并反序列化来测试文件中的数据:如访问数据 "Tues"及"Zero"
    探索:
    自定义一个有打印语句的简单函数,将函数序列化到文件中,在反序列化测试函数中的打印语句
    """
    import shelve
    # ① 连接文件
    # ② 序列化与反序列化
    # ③ 断开连接
    sl = shelve.open("temp.shl")

    sl['week'] = ["Sun", "Mon", "Tues", "Wed", "Thur", "Fri", "Sat"]
    sl['person'] = {"name": "Zero", "age": 8, "height": 180}
    def fun(): print("函数执行了....")
    sl['fn'] = fun

    print(sl['week'][2])
    print(sl['person']['name'])
    sl['fn']()

    sl.close()

    """
    2.有一个people.xml文件,内容如下
    <?xml version="1.0" encoding="utf-8" ?>
    <Peoples value="嘉宾">
    <?[CDATA[
    <a></a>
    ]]>
    存放所有嘉宾的xml文件
    <People flag="一号男嘉宾">
    <name>张三</name>
    <age>20</age>
    <gender>男</gender>
    </People>
    <People flag="一号女嘉宾">
    <name>李四</name>
    <age>18</age>
    <gender>女</gender>
    </People>
    </Peoples>
    遍历输出xml文件中的所有数据
    """
    """
    1.标签:被<>包裹以字母开头可以包含合法字符可以被解析的标记
    2.xml中有且只能出现一个根标签
    3.xml中所有标签都是自定义标签
    4.xml所有标签都拥有结束标签
    5.xml中标签可以拥有属性,内容与子标签
    6.单双标签:单主功能(属性) 双主内容(内容与子标签)
    """
    import xml.etree.ElementTree as et
    tree = et.parse("people.xml")
    root = tree.getroot() # Peoples
    print(root.tag)
    print(root.text)
    print(root.attrib['value'])
    print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
    for i in root: # i 两个People
    print(i.attrib['flag'])
    print(i.find('name').text)
    print(i.find('age').text)
    print(i.find('gender').text)
    print("----------------------------------------")


    """
    3.模拟加密过程
    1)账号密码由用户键盘输入
    2)对得到的账号密码进行md5方式加密处理(采取加盐)
    3)提前建立基本的碰撞测试库
    4)对于用户输入的账号密码进行反馈
    -- 解密成功
    -- 解密失败
    """
    import hashlib
    usr = input("账号:")
    ps = input("密码:")
    # 加盐
    top = "12345"
    bottom = "qwert"
    data = top + ps + bottom + usr
    # 锁加密
    lock = hashlib.md5()
    lock.update(data.encode("utf-8"))
    # print(lock.hexdigest())
    #8c649136390a2c204c924d3b9a1387e4 5580934aca25f70dc8c874259690a213
    lib = ["8c649136390a2c204c924d3b9a1387e4", "5580934aca25f70dc8c874259690a213"]
    # 碰撞解密
    # for i in lib:
    # if i == lock.hexdigest():
    # print("解密成功")
    # break
    # else:
    # print("解密失败")

    tag = "解密失败"
    for i in lib:
    if i == lock.hexdigest():
    tag = "解密成功"
    break
    print(tag)
















  • 相关阅读:
    python-Web-django-路由保护
    python-Web-django-图表统计
    python-linux-集群nginx
    python-Web-数据库-oracle
    python-Web-数据库-mysql
    python-爬虫-scrapy
    Educational Codeforces Round 90 (Rated for Div. 2) A~C
    leetcode周赛192
    Codeforces Round #597 (Div. 2) C dp
    Codeforces Round #645 (Div. 2) A~D
  • 原文地址:https://www.cnblogs.com/Maikes/p/9474614.html
Copyright © 2011-2022 走看看