Java加密系列之(一)加密基础

原创 2015年04月25日 14:49:04

密码的常用术语


明文:待加密信息

密文:经过加密后的明文


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

加密算法:明文转为密文的转换算法

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


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

解密算法:密文转为明文的算法

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


密码分析:截获密文者试图通过分析截获的密文从而推断出原来的明文或密钥的过程

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

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

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


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

密码系统:指用于加密、解密的系统


柯克霍夫原则:数据的安全基于秘钥而不是算法 的保密。即系统的安全取决于密钥,对密钥保密,对算法公开。这是现代密码学设计的基本原则


密码的分类


按密码体制


对称加密(单钥密码、私钥密码) 指加密密钥与解密密钥相同

非对称加密(双钥密码、公钥密码) 指加密密钥与解密密钥不同,密钥分公钥、私钥


按明文处理方法


分组密码:指加密时将明文分为固定长度的组,用同一秘钥和算法对每一块加密,输出也是固定长度的密文。多用于网络加密

流密码:也称序列密码。指加密时每次加密一位或者一个字节明文


散列函数:不是用来完成数据的加解密,是用来验证数据的完整性。

特点:长度不受限制、哈希值容易计算、散列运算过程不可逆

相关算法:消息摘要算法MD5等、SHA——安全散列算法、MAC——消息认证码算法


数字签名:主要是针对以数字的形式存储的消息进行的处理


OSI安全体系

OSI(Open System Interconnection)开放式通信系统

网络通信

7.应用层

6.表示层

5.会话层

4.传输层

3.网络层

2.数据链路层

1.物理层


安全机制

加密机制

数字签名机制

访问控制机制

数据完整性机制

认证机制

业务流填充机制

路由控制机制

公正机制


安全服务

认证(鉴别)

访问控制服务

数据保密性服务

数据完整性服务

抗否认性服务


TCP/IP安全体系

7.应用层

4.应用层 6.表示层应用层安全

5.会话层

3.传输层 4.传输层 传输层安全

2.网络层 3.网络层 网络层安全

1.网络接口层 2.数据链路层网络接口层安全

1.物理层


安全服务 安全机制

认证(鉴别服务)认证机制

数字签名机制

访问控制服务 访问控制机制

路由控制机制

数据保密性服务 加密机制

业务流填充机制

数据完整性服务 数据完整性机制

抗否认性服务 公正机制


Java安全组成

JCA(Java Cryptography Architecture) Java加密体系结构提供基本的加密框架,比如消息摘要、数字签名

JCE(Java Cryptography Extension) Java加密扩展包在JCA的基础上做了扩展,比如DES、AES、RSA算法通过JCE提供

JSSE(Java Secure Socket Extension) Java安全套接字扩展包提供基于SSL的加密功能,主要用于网络传输

JAAS(Java Authentication and Authentication Service)Java鉴别与安全服务基于Java平台的身份验证功能,如权限


相关Java包、类

java.security——消息摘要

javax.crypto——安全消息摘要,消息认

java.net.ssl——安全套接字,基于网络的加解密 常用类:HttpsURLConnection、SSLContext


第三方Java扩展

Bouncy Castle

——两种支持方案:1.配置(security.provider.1=sun.security.provider.Sun);2.代码调用

Commons Codec

——Apache提供

——Base64、二进制、十六进制、字符集编码

——Url编码/解码(URLenCode、URLdeCode)



加密解密系列文章之 - ASCII 加密解密(最简单的加密解密) 下

继上一篇 加密解密系列文章之 - ASCII 加密解密(最简单的加密解密) 上 的下篇。 我在 上 篇里 已经给大家说了最基本的ASCII 加密 解密的东西。然后再最后 我们说了ASCII加密解密...
  • brok1n
  • brok1n
  • 2016年07月30日 13:25
  • 1201

Java实现最电话号码的简单加密源码

废话已经在 java实现加密电话号码,有具体的加密流程注释 这里面说了,这篇文章我就直接上代码了! 请看: /** * @Title: TestMain.java * @Package org....
  • qq_34137397
  • qq_34137397
  • 2017年05月29日 23:25
  • 1166

使用java对文件或文件夹进行压缩和加密

使用Java对文件或文件夹的压缩, 解压, 加密和解密.  加解密类型使用的是AES.  使用zip对文件或文件夹进行压缩, 解压缩:  [java] view plain...
  • achuo
  • achuo
  • 2017年05月15日 19:51
  • 2841

Java软件如何加密

Java软件如何加密 [导读] 本文拟针对Java软件的加密保护方法,其中综合运用了多种加密技术,抗破解强度高;使用纯软件保护技术,成本低。 Java软件由于Java语言面向对...
  • u012099645
  • u012099645
  • 2014年06月27日 01:15
  • 1035

【Java系列】(六)Java中常用的加密方法---单向加密算法

加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些...
  • rwang_1001
  • rwang_1001
  • 2016年09月26日 20:11
  • 1122

Java程序的加密和反加密

首先我们来看看Java程序的反加密,也就是通常所说的Crack过程,只有明白了这个过程,我们才能有效的对我们的程序进行加密。   通常我们得到的Java程序的Crack包有两种,一种属于KeyGen...
  • qq_27376871
  • qq_27376871
  • 2016年06月12日 17:48
  • 1019

java中的几种加密方法

Java代码   package com.cxlh.mm;      public class Base64 {       final static String baseTab...
  • u010624033
  • u010624033
  • 2014年03月22日 23:50
  • 997

Java常用加密技术和代码总结

Java常用加密技术和代码总结,还通过一些生活中容易理解的场景来解释算法复杂的逻辑。...
  • amurocrash
  • amurocrash
  • 2016年07月15日 17:18
  • 5414

各种Java加密算法

所有分类 > 开发语言与工具 > Java开发 各种Java加密算法 您的评价:           如基本的单向加密算法:  BAS...
  • number_chc
  • number_chc
  • 2014年09月01日 10:43
  • 4006

java安全之加密技术

加密方式对称加密算法只有一个密钥key进行加密解密,可以逆向加解密。1.凯撒密码古代有名的加密算法,将加密的数据进行一定的以为,属于对称加密,密钥key = 2(int 值)。这种加密非常简单,只需要...
  • itheimach
  • itheimach
  • 2016年08月02日 18:02
  • 1083
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java加密系列之(一)加密基础
举报原因:
原因补充:

(最多只允许输入30个字)