团队作业(五):项目冲刺2

团队作业(五):项目冲刺2

各个成员今日完成的任务

  • 范超明:前端代码设计

  • 周意凯:文件加密解密

  • 黄琪凯:后端代码设计

  • 尤其羽:后端代码设计

  • 杨语桐:代码测试

代码完成情况

  • 前端部分代码

    import socket
    import threading
    from gmssl import sm2, sm3, sm4
    import os
    import hashlib
    import time
    import shutil

    stop_thread = threading.Event()

    def change_server_password(sm4_key):
    new_password = input("input new password: ")
    new_sm4_key = generate_sm4_key(new_password)
    try:

    decrypt_files("data", sm4_key)
    decrypt_files("user", sm4_key)

    encrypt_files("data", new_sm4_key)
    encrypt_files("user", new_sm4_key)
    except:
    print("error, change server password fail")

  • 后端部分代码

    import socket
    import threading
    from gmssl import sm2, sm3, sm4
    import os
    import hashlib
    import time
    import shutil

    stop_thread = threading.Event()

    def read_and_check_server_info(input_password, sm4_key):
    # 备份密码文件
    shutil.copy("server_password.encrypted","server_password.encrypted.copy")

    decrypt_file("server_password.encrypted", sm4_key)
    # print("successfully decrypt password file")
    # time.sleep(10)
    key = False
    with open("server_password", 'r') as server_info:
    server_password = server_info.readline().strip()
    # print(server_password)
    # print(input_password)
    if input_password == server_password:
    key = True
    encrypt_file("server_password", sm4_key)

    恢复备份

    os.remove("server_password.encrypted")
    os.rename("server_password.encrypted.copy", "server_password.encrypted")

    return key

  • 加密解密部分代码

    def encrypt_file(file_path, sm4_key):
    crypt_sm4 = sm4.CryptSM4()
    crypt_sm4.set_key(sm4_key, sm4.SM4_ENCRYPT)

    try :
    with open(file_path, 'rb') as file:
    file_data = file.read()
    except:
    print("an error occurred while opening the data, exit ")
    return

    encrypted_data = crypt_sm4.crypt_ecb(file_data)

    保存加密后的文件

    with open(file_path + '.encrypted', 'wb') as encrypted_file:
    encrypted_file.write(encrypted_data)

    删除原始文件(可选)

    os.remove(file_path)

提交到gitee

Gitee代码提交链接

明日各个成员的任务安排

  • 范超明:完善前端代码

  • 周意凯:加密解密代码修改

  • 黄琪凯:完善后端代码

  • 尤其羽:完善后端代码

  • 杨语桐:代码测试

各个成员今日对项目的贡献量

姓名 贡献量
范超明 2
周意凯 2
黄琪凯 2
尤其羽 2
杨语桐 2

团队线下合照

posted @ 2023-12-12 18:05  你玩原神吗组  阅读(36)  评论(0)    收藏  举报