数据库安全性与完整性设计

文章标签集合[数据库安全,数据敏感,通信安全,MD5,盐加密]

1  系统设计 

1.1设计目标

(1)确定系统中需要保护的敏感数据和通信内容;

(2)设计合适的签名、加密和解密算法;

(3)实现前端和后端的签名、加密和解密功能;

(4)配置合适的密钥管理和证书管理机制;

(5)进行系统测试和安全性评估。

1.2 需求描述

1.2.1  信息要求:

(1)用户信息: 包括用户名、密码等个人身份信息。

(2)图书信息: 包括书名、作者、出版社等图书相关信息。

(3)借阅信息: 包括借阅时间、归还时间等借阅记录。

(4)通信内容: 所有用户与系统之间的通信内容,包括登录请求、图书查询请求、借阅请求等。

1.2.2  处理要求:

(1)用户密码处理: 用户密码应采用MD5加密算法进行存储,确保用户密码的安全性。

(2)图书管理: 管理员具有添加、修改、删除图书的权限,确保图书信息的准确性和完整性。

(3)用户管理: 管理员具有添加、修改、删除用户的权限,确保用户信息的准确性和完整性。

(4)借阅信息管理: 记录每次借阅和归还操作,包括借阅时间、归还时间等,以便追溯用户借阅历史。

1.2.3  安全性与完整性要求:

(1)MD5加密存储:系统将用户密码进行MD5加密存储,以增强用户密码的安全性。这一措施有助于防止密码泄露及提高系统对用户身份验证的保障。

(2)角色权限限制:对不同的角色赋予不同的权限,防止无权限角色对数据进行修改。

1.3开发和运行环境选择

开发工具: 前台开发语言为JAVA,后台数据库为MySql

运行环境:windows 11操作系统 

2  网络安全相关设计

2.1网络安全相关原理论述

2.2.1  MD5盐加密算法原理:

(1)盐生成: 对每个用户生成一个唯一的盐,通常采用随机数生成器产生。

(2)盐与密码结合: 将用户输入的密码与盐进行拼接。

(3)MD5哈希运算: 对拼接后的密码和盐进行MD5哈希运算,生成哈希值。 (4)存储哈希值和盐: 将生成的哈希值和盐存储在数据库中。

2.2.2  安全性原理:

(1)防止彩虹表攻击: 盐的引入使得即使相同的密码也会产生不同的哈希值,从而防止攻击者通过预先计算的彩虹表来破解密码。

(2)提高密码破解难度: 每个用户使用独特的盐,即便密码相同,由于盐的不同,破解者需要分别攻击每个用户的密码,增加了破解难度。

(3)降低暴力破解速度: 盐的引入使得暴力破解攻击难以有效进行,因为攻击者需要针对每个用户尝试不同的盐。

MD5盐加密算法是一种相对较简单但有效的密码存储方法,尽管MD5本身存在弱点,但结合盐的使用可以提高密码存储的安全性。

2.2相应功能概要设计

加密算法的实现体现在用户注册登录模块,当用户输入密码后,会对密码进行MD5盐加密,以加密过后的密码存储到数据库中,无法通过数据库数据直接获得真实的用户密码,而在用户登录过程中,通过对比用户输入的密码,和对数据库用户密码的解密结果来保证用户的安全登录。

3  图书管理系统详细设计

本系统是一个图书管理系统,实现对图书、用户和借阅信息的有效管理,分为管理员和用户两个角色,以满足图书馆的日常运作需求。

3.1.1  管理员功能:

3.1.1.1 图书管理

(1)添加图书:管理员可以添加新的图书信息,包括图书编号、书名、作者、出版社、出版日期、借阅状态等。

(2)删除图书:管理员可以删除不再馆藏的图书信息。

3.1.1.2 用户管理

(1)添加管理员:管理员可以添加新的管理员信息

(2)删除用户:管理员可以删除不再使用系统的用户信息。

3.1.1.3 借阅管理

(1)查看借阅记录:管理员可以添加新的管理员信息

(2)修改借阅状态:管理员可以改变图书的借阅状态。

3.1.2  用户功能:

3.1.1.1 用户注册

3.1.1.2 图书借阅

3.1.1.3 图书归还

4  系统测试

  1. 进行一个新用户的注册,输入密码完成注册后,到数据库查看对应密码,可以得到预期结果:数据库的用户密码是通过加密之后的密码
  2. 分别登录管理员和用户角色,可以看到对应的功能模块不一致,通过前端限制不同角色的权限。
  3. 操作各个功能模块,检测是否能达到预期效果。

更多精彩内容关注下方: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/492003.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

npm i卡在 idealTree buildDeps没反应的解决方案

通过git clone拉下项目后,进行项目的初始化下包时,发现npm i 并没有反应(如图): 关键点:IdealTree 1.网络问题 确保你的网络连接正常,能够正常访问 npm 仓库。有时网络问题可能导致包无法正确…

JWT学习笔记

了解 JWT Token 释义及使用 | Authing 文档 JSON Web Token Introduction - jwt.io JSON Web Token (JWT,RFC 7519 (opens new window)),是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准((RFC 7519)。该 token 被设计为紧凑…

PyTorch中Tensor(张量)数据结构内部观察

上图中是一个张量embeds,打开其内部存储空间,我们可以看到内部的构成。在PyTorch中,Tensor 具有许多属性和方法。以下是其中一些关键的属性和方法: 属性: H: 在标准的PyTorch API中并没有直接表示为 .H 的…

AR应用的开发流程

增强现实(Augmented Reality,AR)是一种技术,它将虚拟信息叠加在真实世界中,通过计算机生成的视觉、听觉、触觉等感官反馈,将虚拟元素与现实世界进行交互。这种技术使得用户可以与现实世界中的虚拟对象进行互…

前端学习---- 前端HTML基本元素的介绍

一&#xff1a;显示相关的HTML基础知识 1. 推荐的前端编写工具 2. VScode的html速写规则&#xff08;从a标签开始再用&#xff09; ①、&#xff01;&#xff1a;代表生成html的基本框架元素 ②、html元素&#xff1a;直接书写html,不需要加<>,按回车会自动生成 ③、{}…

我的NPI项目之Android 安全系列 -- Android Strongbox 使能(一)

这里借用Android14高通相关的技术文档作为基础文档&#xff0c;该文档描述的是基于NFC的secure element. NFC型号为SN220. 有些概念的说明&#xff1a; 1. RoT 在我们目前的这个上下文中&#xff0c;首先RoT下几个内容&#xff0c;Bootinfo/ Additonal params(images hash) /…

曲线生成 | 图解B样条曲线生成原理(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 控制点计算之插值2 控制点计算之近似3 仿真实现3.1 ROS C实现3.2 Python实现3.3 Matlab实现 0 专栏介绍 &#x1f525;附C/Python/Matlab全套代码&#x1f525;课程设计、毕业设计、创新竞赛必备&#xff01;详细介绍全局规划(图搜索、采样法、智能算法等)&a…

备考2024年小学生古诗文大会正当时:往届真题15题和独家解析

“一年之计在于春”&#xff0c;如何备考2024年小学生古诗文大会&#xff1f;我的建议是现在就开始&#xff0c;每天每周花点时间&#xff0c;夯实古诗文大会试题背后的知识&#xff0c;既能在比赛中取得不错的成绩&#xff0c;还能对语文学习有长远的促进。 我们今天来看15道往…

C# Onnx 使用onnxruntime部署夜间雾霾图像的可见度增强

目录 介绍 模型信息 效果 项目 代码 下载 C# Onnx 使用onnxruntime部署夜间雾霾图像的可见度增强 介绍 github地址&#xff1a;https://github.com/jinyeying/nighttime_dehaze [ACMMM2023] "Enhancing Visibility in Nighttime Haze Images Using Guided APSF a…

【Vue3】学习watch监视:深入了解Vue3响应式系统的核心功能(上)

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

c++入门学习⑧——模板

目录 前言 基本介绍 什么是模板&#xff1f; 作用 特点 分类 函数模板 语法 使用方式 注意事项 函数模板和普通函数区别 普通函数和函数模板的调用规则 局限性 类模板 语法 类模板的成员函数创建时机 类模板实例化对象 类模板实例化对象做函数参数 类模板成…

JAVA工程师面试专题-《Mysql》篇

目录 一、基础 1、mysql可以使用多少列创建索引&#xff1f; 2、mysql常用的存储引擎有哪些 3、MySQL 存储引擎&#xff0c;两者区别 4、mysql默认的隔离级别 5、数据库三范式 6、drop、delete 与 truncate 区别&#xff1f; 7、IN与EXISTS的区别 二、索引 1、索引及索…