目 录
摘 要 1
ABSTRACT 2
第1章 绪论 3
1.1 数据库加解密系统开发背景 3
1.2 国内外现状 3
1.3 本文的主要工作 4
1.4 论文的组织结构 4
第2章 数据库加密的基本理论 6
2.1 数据库加密的三种级别 6
2.2 数据库加密的粒度 8
2.2.1 数据库级的数据库加密 8
2.2.2 表(文件)级的的数据库加密 8
2.2.3 记录级的的数据库加密 8
2.2.4 字段级的数据库加密 9
2.2.5 数据项级的数据库加密 9
2.3数据库加密的限制 9
第3章 密码学技术 10
3.1 对称加密 11
3.1.1 对称加密模型 11
3.1.2 AES和DES算法 12
3.2 非对称加密 13
3.2.1 非对称加密基本原理 13
3.2.2 RSA加密算法 14
3.3 加密算法分析 15
第4章 数据加密的密钥管理设计 15
4.1加解密控制模块 16
4.2 存储库 16
4.3 管理器 18
4.3.1 密钥生命周期与密钥更新 18
4.3.2 密钥销毁 19
4.4 对外的密钥列表 19
4.4.1 密钥集合 20
4.4.2 密钥分配 20
第5章 数据库加密的设计与实现 20
5.1 总体框架 21
5.2 加解密控制模块和算法 22
5.2.1加解密控制模块 22
5.2.2 加解密控制模块的实现 22
5.2.3 密码算法 22
5.3 存储库和列表 24
5.3.1 存储库 24
5.3.2 实现数据库中的存储库 25
5.3.3 程序中存储库的实现 25
5.3.4 列表 28
5.3.5 列表的实现 28
5.4 密钥管理器 29
5.5 命令行解析 30
5.6 客户端和服务器 32
5.7系统的运行 33
5.7.1 以管理员的身份登录 34
5.7.2 生成二级密钥 34
5.7.3 新建两个有效的密钥 35
5.7.4 完成注册登录步骤 36
5.7.5 在worker数据库表的两个不同类型的列加密 38
5.7.6 SQL语句 40
5.7.7 更换二级密钥 45
第6章 结论 48
致谢 48
参考文献 50
附录 51
本文讨论的主要问题,是研究、开发可行性好和性能优秀的数据库加密系统。借助Visual Studio、eclipse编程工具和SQL Server 2012数据库,结合数据库安全模型,使用对称和非对称加密算法,并采用合适的密钥管理机制设计并实现了一个基于SQL Server的数据库加解密原型系统。工作内容主要从下面几个方向展开:
数据库加密系统选取对称加密算法。以使数据库加密系统具有较优良加解密速度,数据保密性高的优点,并且通过建立密钥管理机制来使这个数据库加密系统更加安全、更加人性化。
然后对数据库加密的关键技术进行分析与自我调整。实现密钥分配、备份,并对密钥的生命周期和密钥的更改进行研究与设计。
将数据库加密理论加以实践证明,基于C/S模式,设计与实现一个切合理论的数据库加密原型系统,包括在服务器建立密钥管理机制,为客户端提供一系列的加解密指令,使得不同级别的用户存取访问密文数据库,对该理论的可行性做出了肯定的回答。
第3章密码学技术
密码学就是去探讨如何在不被人知道信息的情况下去交流信息。按照人的正常思维去思考,会有两种方法:第一种就是找一个无人的地方,然后再去交流信息;第二种是,用一种只有通信双方才能理解的方式,例如:眼神交流、肢体语言等,即使是别人能发现,也不能理解是什么意思。在计算机的领域,在计算机网络中,我们只要开启抓包的工具,一般都能得到通信报文,再者,不是每个人跟别的人都是专用链路,所以说第一种创造无人环境一般是行不通的。考虑到种种限制,隐藏信息的涵义(专业地说加密)才是应该选择的解决方案
按隐藏信息的涵义的方式来对加密算法进行区分,所有的算法都被分到两个集合中,一个集合叫对称加密和另一个集合叫非对称加密。
3.1 对称加密
对称加密最大的特点应该就是加解密使用相同的密钥,这符合人们的思维惯性,因为同一把锁,就应该用同一种钥匙,所以它也被称为传统密码算法。当然对称加密发展至今,加解密钥也不一定是相同的了,本文转载自http://www.biyezuopin.vip/onews.asp?id=14538但终究是对称加密算法,加解密要之间是可以相互推导,实质还是加解密使用相同的密钥。
分组加密(块加密)和序列加密(流加密)是这种加密的两种主要形式。
对称加密的安全性满足一下两个要求:
(1)随着时间的流逝,总会有一些密文和明文会无意地泄露出去,但即使这些东西被不法分子得到,他也不能通过这些数据来猜到我们的密钥。
(2)密钥和加密算法是关键的两环,一旦这两个环节被窃取,则数据相当于暴露在空气中,随时可以被他人获取,所以要将密钥放在真空的环境下。
3.1.1 对称加密模型
对称加密模型有5个基本成分:
(1)明文:可以通过大脑的识别后可以被人们所理解的数据。
(2)加密算法:能实现给现实生活的信息编上密码,只有知道密码,才能读出正确的信息,达到保密的目的这个功能的准确和完整的描述。
(3)密钥:就是加锁的钥匙,这里被加锁的是明文,锁就是加密算法。但是最为奇特的是这个锁适用多个钥匙,不过不同钥匙,加锁后的情况不相同。
(4)密文:作为算法的返回值,用人的肉眼看是一定看不懂的,即使是能看懂也不是直观的意义,依赖于明文和密钥。
(5)解密算法:就是逆加密算法,反向加密。参数是密文和密钥,返回值为原始明文。

package client;import java.io.*;
import java.net.*;
import java.util.*;import server.Server;/*** 客户端*/
public class Client {public Socket socket = null;public BufferedReader br = null;public PrintWriter pw = null;public Scanner scanner = new Scanner(System.in);// 从键盘读取public ReadServerMessage rsm = null;public Client() {try {// 创建客户端socketsocket = new Socket(Server.HOST, Server.PORT);// 读取从客户端发来的消息br = new BufferedReader(new InputStreamReader(socket.getInputStream()));// 写入信息到服务器端pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));rsm = new ReadServerMessage(this, socket, br);// 从服务器读取消息} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {new Client();}public void close() {try {System.out.println("close......");br.close();br = null;pw.close();pw = null;socket.close();socket = null;} catch (Exception e) {e.printStackTrace();}}
}






















基于Java的SQL Server数据库加解密系统设计与实现相关推荐

  1. 基于JAVA和SQL SERVER数据库实现的医院病房信息管理系统

    1 系统设计 1.1 设计目标 医院病房管理系统是一种以窗体界面为基础的多功能平台,本系统最根本的目的是让使用者与数据库能够通过系统达到交互,以此来进行医院病房的管理等相关操作.管理员可以通过该平台对 ...

  2. 基于java和Sql Server数据库的停车场管理系统

    一.实验内容: 实现停车场管理系统,应用于车辆的出.入管理. 二.功能要求: 包括车辆进出管理与系统管理等功能模块,可根据车辆停放时间及收费标准自动收费.用户需要事先办理停车卡并充值,停车卡分优惠卡和 ...

  3. 基于JAVA和SQL SERVER数据库实现个人财务管理系统

    源码下载 http://www.byamd.xyz/hui-zong-1/ 一.需求分析 个人财务管理系统是智能化简单化个人管理的重要的组成部分.并且随着计算机技术的飞速发展,计算机在管理方面应用的旁 ...

  4. [源码和文档分享]基于JAVA和SQL SERVER数据库实现的个人财务管理系统

    一.需求分析 个人财务管理系统是智能化简单化个人管理的重要的组成部分.并且随着计算机技术的飞速发展,计算机在管理方面应用的旁及,利用计算机来实现个人财务管理势在必行.本文首先介绍了个人财务管理系统的开 ...

  5. 【java毕业设计】基于java+Eclipse +SQL Server的工厂进销存管理系统设计与实现(毕业论文+程序源码)——工厂进销存管理系统

    基于java+Eclipse +SQL Server的工厂进销存管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Eclipse +SQL Server的工厂进销存管理系统 ...

  6. java sql进销存_[内附完整源码和文档] 基于Java和Sql Server 2008的陶瓷工厂进销存管理系统...

    摘 要 时代在进步,我们的生产生活方式当然也要相对应的做出改变了.在今天这样一个信息化的时代,计算机软件已经广泛的被用于日常的办公,仓库的库存管理,企业的人员以及资产管理,文字的编辑处理,电子表格的广 ...

  7. 【java毕业设计】基于javaEE+SSH+SQL Server的学生信息管理系统设计与实现(毕业论文+程序源码)——学生信息管理系统

    基于javaEE+SSH+SQL Server的学生信息管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+SSH+SQL Server的学生信息管理系统设计与实现,文章 ...

  8. java和sql网上书店系统_网上书店管理系统(java。SQL Server数据库)

    [实例简介] 网上书店管理系统(java.SQL Server数据库) [实例截图] [核心代码] 网上书店系统(1) └── 网上书店系统 └── Store ├── bookDB │   ├── ...

  9. 通过Java连接Sql Server数据库

    1.下载JDBC JDBC是Java DateBase Connectivity的简写,翻译过来就是java连接数据库,或者更通俗地说就是java语言操作数据库.JDBC的本质其实是官方定义的一套操作 ...

最新文章

  1. Android Display System --- Surface Flinger
  2. golang中的nil
  3. IT 人士如何避免中年危机?
  4. 前端学习(417):京东制作页面25中间部分的准备工作
  5. Redis源码分析之工具类util
  6. 【Level 09】U1 The way I see it L2 Keep everyone safe
  7. 苹果iPad新品传言来袭:iPad mini终于要换磨具了?
  8. 数组删除一行_一行Python代码能做出哪些神器的事情
  9. GPU 编程 CPU 异同点_专业软件与CPU的性能相关性详细对比
  10. 爬虫之Beautiful Soup库入门
  11. android 按端口获取流量,如何获取高性价比流量、开拓流量端口
  12. birt字体 linux,linux下birt 图表中文乱码问题
  13. 中望cad文字显示问号怎么办_CAD字体显示问号解决方法
  14. typecho图片插件_Ideal ——接近Typecho完美的插件
  15. Win32 OpenGL 编程(1)Win32下的OpenGL编程必须步骤
  16. 【RISC-V】SiFive Unmatched开发板开发手记
  17. docker build requires one arguments
  18. matlab测试网络,matlab测试网络
  19. 前端基础面试题,菜鸟必备
  20. Element ui —— dialog 弹窗 设置点击空白处不关闭

热门文章

  1. Android第三方支付——Bmob支付总结
  2. 做为网址导航生存何在或转行
  3. java计算机毕业设计中学后勤设备保修维护管理系统源码+mysql数据库+系统+部署+lw文档
  4. 使用inkspace绘制简单logo
  5. 存储式示波器如何保存图片?
  6. 手机端html回弹,处理iOS微信H5页面橡皮回弹效果
  7. php 两个数组合并,一个做键,一个做值
  8. 如何实现产销平衡_苦练内功实现产销平衡
  9. Windows server 2012 远程连接关闭后用户被注销,导致OA系统异常
  10. flac格式音乐怎么转换为mp3格式