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)



Hessian,轻量级的Java Remoting方案

项目里遇到一个问题:由于安全性的需要,必须由一个程序专门负责查询某一数据库,然后通过安全的信道(例如HTTP)将查询结果传到安全区域之外的application。为了解决这个小小的remoting问题...
  • gigix
  • gigix
  • 2003-12-12 01:38:00
  • 8258

java加密与解密的艺术 -- 笔记

第1-3章:     这几章主要介绍了一些为什么要加密,加密的历史原因以及演变过程,并介绍了几种常见的加密算法,画出了对称与非对称加密在实际应用中的思维导图。     (了解到加密技术分为对称加密...
  • aa3313322122
  • aa3313322122
  • 2016-02-15 14:59:08
  • 1194

java加密的几种方式

java加密的方式
  • high2011
  • high2011
  • 2015-12-18 11:06:40
  • 1409

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

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

JAVA加密与解密的艺术第2版(良心保证第二版)

  • 2017年12月18日 10:01
  • 96.27MB
  • 下载

java简单加密小程序

public static void main(String[] args) throws IOException { //路径和秘钥 jiamiFile("F:/workspace/...
  • m0_37860769
  • m0_37860769
  • 2017-12-26 10:43:36
  • 187

解密系列(基础篇_必备知识)

教程:鱼C解密系列     教材:《加密与解密》     多字节数据存放顺序与CPU有关,微处理器的存储顺序有正序和逆序(即大端存储和小端存储)。     常见的Intel系列使用的编码方式为逆...
  • ccrookie
  • ccrookie
  • 2015-05-15 18:40:28
  • 454

java加密与解密的艺术(二)——对称密码体制

(写在前面的话:之前负责了一个关于数据安全接入的模块,涉及到了数据的加密解密,文件校验,下载落地,入库等。在wannercry肆虐之际,更深刻体会到数据安全的重要意义。鉴于此,不才受邀在今天给团队成员...
  • Stefan_xiepj
  • Stefan_xiepj
  • 2017-05-18 09:31:22
  • 603

Java加密与解密的艺术3-JAVA加密利器.pdf

  • 2010年12月29日 09:07
  • 700KB
  • 下载

Java:字符串简单加密专成16进制在转回来

package com.happy.util;public class UrlEncode { /**  * convert String to Hex  *   * @param str  * @r...
  • qiaolevip
  • qiaolevip
  • 2010-12-10 16:30:00
  • 1142
收藏助手
不良信息举报
您举报文章:Java加密系列之(一)加密基础
举报原因:
原因补充:

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