本项目是直接放假组在 **传媒大学密码学应用实践课程 的结课作业。
- 基于网页的用户注册与登录系统
- 使用https绑定证书到域名而非IP地址
- 允许用户注册到系统
- 用户名的合法字符集范围:中文、英文字母、数字
- 类似:-、_、.等合法字符集范围之外的字符不允许使用
- 用户口令长度限制在36个字符之内
- 对用户输入的口令进行强度校验,禁止使用弱口令
- 用户名的合法字符集范围:中文、英文字母、数字
- 使用合法用户名和口令登录系统
- 禁止使用明文存储用户口令
- 存储的口令即使被公开,也无法还原/解码出原始明文口令
- 基于网页的文件上传加密与数字签名系统
- 限制文件大小:小于 10MB
- 限制文件类型:office文档、常见图片类型
- 匿名用户禁止上传文件
- 对文件进行对称加密存储到文件系统,禁止明文存储文件
- 系统对加密后文件进行数字签名
- 基于网页的加密文件下载与解密
- 提供匿名用户加密后文件和关联的数字签名文件的下载
- 客户端对下载后的文件进行数字签名验证
- 客户端对下载后的文件可以解密还原到原始文件
- 提供已登录用户解密后文件下载
- 下载URL设置有效期(限制时间或限制下载次数),过期后禁止访问
- 提供静态文件的散列值下载,供下载文件完成后本地校验文件完整性
- 提供匿名用户加密后文件和关联的数字签名文件的下载
- 对称加密:AES
- 非对称加密:RSA
- 数字签名:SHA256withRSA
- 前端:Vue.js 3.0
- 后端:Flask
- 数据库:MySQL
打开浏览器访问:
即可快速体验系统所有功能。
本地运行方式:python3 app.py
- 相关依赖在
requirements.txt
文件中,可以通过命令:pip install -r requirements.txt
安装。 - 数据库账号密码写在
app.py
文件中,可进行更改,数据库表结构在cucpan.sql
中