java数据安全(一)
在java开发中,常常需要考虑数据安全问题,然不仅仅需要考虑数据存储的安全,还需要考虑数据的传输安全。自从有了数据安全问题后,密码学也就出来了。了解数据安全,首先需要了解密码学
1.什么是密码学
密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。
2.密码学中常用的概念
明文:指待加密信息。明文可以是2进制数据,文本文件,图片文件等。
密文:指经过加密后的明文。密文可以使2进制数据,文本文件,图片文件等。
发送者:发送消息的人。
接收者:接收消息的人。
加密:明文转换为密文的过程。
加密算法:将明文变化为密文的转换算法。
加密密匙:通过加密算法进行加密操作作用的密匙。
解密:将密文转换为明文的过程。
解密算法:将密文转换为明文的转换算法。
解密密匙:通过解密算法进行解密操作用的密匙。
密码分析:截取密文者试图通过分析截获的密文从而推断出原密文或密匙的过程。
密码分析者:等同于密码破译者,指从事密码分析的人。
被动攻击:指对一个保密系统采取截获密文并对其进行分析和攻击。这种攻击对密文没有破坏作用。
主动攻击:指攻击者非法入侵密码系统,采用伪造,修改,删除等手段向系统注入假消息进行欺骗。这种攻击对密文具有破坏作用。
密码体制:由明文空间、密文空间、密匙空间、加密算法和解密算法五部分构成。
密码协议:有时候也称为安全协议,是指以密码学为基础的消息交换的通信协议,其目的是在网络环境中提供各种安全服务。
密码系统:用于加密与解密的系统,通常包含软、硬件的系统。
柯克霍夫原则:数据的安全基于密匙而不是算法的保密。
3.密码学的分类
1.按时间划分,可分为古典密码与现代密码,古典密码为以字符为基本单元进行加密
2.按保密内容划分,可分为受限制算法与基于密匙算法
3.按密码体制划分,可分为对称密码体制、非对称密码体制
4.按明文处理方法划分,可分为分组密码与流密码
4.保密通信模型
密码学并不是孤立存在,废话,呵呵。它需要一个环境,就是保密通信模型。密码学的目的在于确保信息的保密传送。
保密通信模型:

对称密码体制模型:

从中可以看出加密与解密的密匙是一模一样的,也就是对称密码体制加解密算法密匙是一样的。
非对称密码体制:

与对称密码体制比较就是加解密算法与密匙均不同。
java数据安全(一)的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- java高并发下的数据安全
高并发下的数据安全 我们知道在多线程写入同一个文件的时候,会存现“线程安全”的问题(多个线程同时运行同一段代码,如果每次运行结果和单线程运行的结果是一样的,结果和预期相同,就是线程安全的).如果是My ...
- JAVA card 应用开发(六) 个人化数据的线路安全和数据安全
卡片个人化数据的线路安全和数据安全 说明:下面理论,基于GP2.2规范. 一.线路安全 1. 概念:线路安全.就是对于数据不保密.但要保证数据的完整性和防止被篡改. 2. 方法:在原有的数据基础上.加 ...
- Java企业实训 - 01 - Java前奏
前言: 虽然个人专攻.NET方向,不过由于个人是干教育行业的,方方面面的东西,不能说都必须精通,但肯定多少都会涉及到. 一个菜鸟学员,从啥都不会,经过一步步学习,最后到企业上手掌管一个模块甚至一个项目 ...
- 看我是如何处理自定义线程模型---java
看过我之前文章的园友可能知道我是做游戏开发,我的很多思路和出发点是按照游戏思路来处理的,所以和web的话可能会有冲突,不相符合. 来说说为啥我要自定义线程模型呢? 按照我做的mmorpg或者mmoar ...
- Java事务处理
Java事务处理总结 一.什么是Java事务 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(co ...
- Java 抽象类与接口
接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法. 抽象类与接口是 Java 语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予 Java 强大的面向对象的能力.他们两者之间对 ...
- Java 基础高级2 网络编程
1.协议的概念:通信双方事先约定好的通信规则 2七层网络通信协议:应用成,表示层,会话层,传输层,网络层,数据链路层 3.TCP/IP协议:点对点通信,三层握手,安全有保证 4.UDP协议;广播协议, ...
- 转:大神提出来的java服务器方面面试问题(当作自己的学习目标平时得多注意)
因为一些个人原因,陆陆续续参加了一些校招补招.社招的笔试和面试(BAT),也包括一些国外公司(Spotify, Google, Ericsson),最后有幸被网易收入麾下,拿到了S.下面罗列一些我复习 ...
随机推荐
- Apache XAMPP Fails to start under Windows XP
Apache XAMPP Fails to start under Windows XP I’ve been installing XAMPP a hundred times before since ...
- 【下载分】C语言for循环语句PK自我活动
想了解自己C语言for语句的掌握程度吗?敢和自己PK较量一番吗?參加"C语言for循环语句PK自我活动",仅仅要成绩70分以上.就可赢得CSDN下载分. 12道题目题库动态读取,每 ...
- [AngularJS] Use ng-model-options to limit $digest
Refer: http://toddmotto.com/super-fast-angular-ng-model-options-limit-digest-cycles/ Use: <input ...
- ubuntu12.10中没有/etc/inittab文件探究
1. 我们首先来看一下Linux系统开机启动过程: Ubuntu是Linux系统的衍生系统,其开机启动过程与上图相差不大,但是随着系统的不断发展,终究还是有不同的地方,下面,我们来了解一下Ubuntu ...
- C++对象模型学习笔记
1. 全局变量是如何初始化的 //global var A a; int main() { cout<<a<<endl; ; } 如上述例子,全局变量a是在main()函数之前 ...
- 挖掘微信Web版通信的全过程
昨天是周末,在家闲得无聊,于是去weiphone.com逛了一圈,偶然发现有人发了一帖叫<微信 for Mac>,这勾起了我的好奇心,国内做Mac开发的人确实很少,对于那些能够独自开发一些 ...
- linux sysvinit与upstart [转]
linux sysvinit与upstart(1) linux sysvinit与upstart(2) linux sysvinit与upstart(3)
- jquery之隐藏div
1.$("#demo").attr("style","display:none;");//隐藏div $("#demo" ...
- java编程思想-枚举类型思维导图
- XML参数转换为Object,并转换为List或DataTable
demo效果: