在java开发中,常常需要考虑数据安全问题,然不仅仅需要考虑数据存储的安全,还需要考虑数据的传输安全。自从有了数据安全问题后,密码学也就出来了。了解数据安全,首先需要了解密码学

1.什么是密码学

密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。

2.密码学中常用的概念

明文:指待加密信息。明文可以是2进制数据,文本文件,图片文件等。

密文:指经过加密后的明文。密文可以使2进制数据,文本文件,图片文件等。

发送者:发送消息的人。

接收者:接收消息的人。

加密:明文转换为密文的过程。

加密算法:将明文变化为密文的转换算法。

加密密匙:通过加密算法进行加密操作作用的密匙。

解密:将密文转换为明文的过程。

解密算法:将密文转换为明文的转换算法。

解密密匙:通过解密算法进行解密操作用的密匙。

密码分析:截取密文者试图通过分析截获的密文从而推断出原密文或密匙的过程。

密码分析者:等同于密码破译者,指从事密码分析的人。

被动攻击:指对一个保密系统采取截获密文并对其进行分析和攻击。这种攻击对密文没有破坏作用。

主动攻击:指攻击者非法入侵密码系统,采用伪造,修改,删除等手段向系统注入假消息进行欺骗。这种攻击对密文具有破坏作用。

密码体制:由明文空间、密文空间、密匙空间、加密算法和解密算法五部分构成。

密码协议:有时候也称为安全协议,是指以密码学为基础的消息交换的通信协议,其目的是在网络环境中提供各种安全服务。

密码系统:用于加密与解密的系统,通常包含软、硬件的系统。

柯克霍夫原则:数据的安全基于密匙而不是算法的保密。

3.密码学的分类

1.按时间划分,可分为古典密码与现代密码,古典密码为以字符为基本单元进行加密

2.按保密内容划分,可分为受限制算法与基于密匙算法

3.按密码体制划分,可分为对称密码体制、非对称密码体制

4.按明文处理方法划分,可分为分组密码与流密码

4.保密通信模型

密码学并不是孤立存在,废话,呵呵。它需要一个环境,就是保密通信模型。密码学的目的在于确保信息的保密传送。

保密通信模型:

  

对称密码体制模型:

  

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

非对称密码体制:

与对称密码体制比较就是加解密算法与密匙均不同。

  

java数据安全(一)的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. java高并发下的数据安全

    高并发下的数据安全 我们知道在多线程写入同一个文件的时候,会存现“线程安全”的问题(多个线程同时运行同一段代码,如果每次运行结果和单线程运行的结果是一样的,结果和预期相同,就是线程安全的).如果是My ...

  3. JAVA card 应用开发(六) 个人化数据的线路安全和数据安全

    卡片个人化数据的线路安全和数据安全 说明:下面理论,基于GP2.2规范. 一.线路安全 1. 概念:线路安全.就是对于数据不保密.但要保证数据的完整性和防止被篡改. 2. 方法:在原有的数据基础上.加 ...

  4. Java企业实训 - 01 - Java前奏

    前言: 虽然个人专攻.NET方向,不过由于个人是干教育行业的,方方面面的东西,不能说都必须精通,但肯定多少都会涉及到. 一个菜鸟学员,从啥都不会,经过一步步学习,最后到企业上手掌管一个模块甚至一个项目 ...

  5. 看我是如何处理自定义线程模型---java

    看过我之前文章的园友可能知道我是做游戏开发,我的很多思路和出发点是按照游戏思路来处理的,所以和web的话可能会有冲突,不相符合. 来说说为啥我要自定义线程模型呢? 按照我做的mmorpg或者mmoar ...

  6. Java事务处理

    Java事务处理总结     一.什么是Java事务   通常的观念认为,事务仅与数据库相关.   事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(co ...

  7. Java 抽象类与接口

    接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法. 抽象类与接口是 Java 语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予 Java 强大的面向对象的能力.他们两者之间对 ...

  8. Java 基础高级2 网络编程

    1.协议的概念:通信双方事先约定好的通信规则 2七层网络通信协议:应用成,表示层,会话层,传输层,网络层,数据链路层 3.TCP/IP协议:点对点通信,三层握手,安全有保证 4.UDP协议;广播协议, ...

  9. 转:大神提出来的java服务器方面面试问题(当作自己的学习目标平时得多注意)

    因为一些个人原因,陆陆续续参加了一些校招补招.社招的笔试和面试(BAT),也包括一些国外公司(Spotify, Google, Ericsson),最后有幸被网易收入麾下,拿到了S.下面罗列一些我复习 ...

随机推荐

  1. Discuz X2.5 用户名包含被系统屏蔽的字符[解决方法]

    /uc_client/data/cache/badwords.php文件里的内容 删除并用 utf-8格式保存

  2. 如何设置jsp默认的编码为utf-8

    方法一: 文件里写: <%@ page contentType="text/html; charset=UTF-8"  %> 方法二: 选择window –> P ...

  3. [转] 使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制

    为了提高性能,几乎所有互联网应用都有缓存机制,其中Memcache是使用非常广泛的一个分布式缓存系统.众所周知,LAMP是非常经典的Web架构方式,但是随着Nginx的 成熟,越来越多的系统开始转型为 ...

  4. 第四节:教你如何快速让浏览器兼容ES6特性

    写在正文前,本来这一节的内容应该放在第二节更合适,因为当时就有同学问ES6的兼容性如何,如何在浏览器兼容ES6的特性,这节前端君会介绍一个抱砖引玉的操作案例. 为什么ES6会有兼容性问题? 由于广大用 ...

  5. Bridge 桥梁模式 桥接模式

    简介 将[抽象部分](Abstraction,人)与[实现部分](Implementor,人穿的衣服)分离,使它们都可以独立的变化. [业务抽象角色]引用[业务实现角色],或者说[业务抽象角色]的部分 ...

  6. XML 序列化与PULL解析

    简介 Pull解析XML XmlPullParser解析器的运行方式与SAX解析器相似.它提供了类似的事件(开始元素和结束元素),但需要使用parser.next()方法来提取它们.事件将作为数值代码 ...

  7. css样式float造成的浮动“塌陷”问题的解决办法

    什么是CSS Float? 定义: float 属性定义元素浮动到左侧或右侧.以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动.浮动元素会生成一个块级元素,而不论 ...

  8. 移动页面缩放方法之(三)rem布局

    <!DOCTYPE HTML> <html lang="zh-cn"> <head> <meta http-equiv="Con ...

  9. H5与Activity之间的通信(调用)

    1.通过H5页面的超链接尾部信息不同进行跳转(类似于URL拦截器) 例如:控件x的href="http://www.example.com/?menu_id=1", 在代码中添加w ...

  10. Angular JS API

    ng function angular.bind angular.bootstrap angular.copy angular.element angular.equals angular.exten ...