您的位置:首页 > 编程语言 > Java开发

Java实现加解密(一)之Base64加密

2017-10-12 00:00 323 查看
摘要: Java加解密系列的第一篇学习笔记,主要包括Java加密解密的基础知识,并使用Base64算法实现加解密。是Java加解密必备的入门基础。

一、密码常用术语

1.密码常用术语(一)

明文:待加密信息

密文:经过加密后的明文

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

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

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

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

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

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

2.密码常用术语(二)

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

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

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

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

3.密码常用术语(三)

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

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

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

二、密码分类

1.按照时间分类

古典密码:以字符为基本加密单元

现代密码:以信息块为基本加密单元

2.按照保密内容算法分类

受限制算法,算法的保密性基于保持算法的秘密,军事领域,属于古典密码

基于密钥算法,算法的保密性基于对密钥的保密,属于现代密码

3.按照密码体制分类

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

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

对称密码算法(单钥密码算法或私钥密码算法),指应用于对称密码的加密、解密

非对称密码算法(双钥密码算法或供钥密码算法),指应用于非对称密码的加密、解密

4.按照明文的处理方法分类

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

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

5.散列函数---->哈希函数

作用:散列函数用于验证数据的完整性

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

散列函数相关算法:消息摘要算法MD5等,SHA--安全散列算法,MAC--消息认证码算法

6.数字签名

作用:主要针对以数字的形式存储的消息进行的处理

三、常用安全体系介绍

1.OSI(Open System Interconnection)安全体系,如图



2.TCP/IP安全体系,如图



3.TCP/IP安全体系,安全服务--->安全机制,如图



四、Java安全组成、JDK相关包及第三方扩展

1.Java安全组成

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

JCE(Java Cryptography Extension) Java加密扩展包,JCA上扩展,提供很多加密算法、消息摘要、密钥管理等功能,比如提供DES、AES、RSA算法;

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

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

使用JDK以外的扩展包要如何使用呢?如下图:



2.相关Java包、类

java.security 消息摘要

javax.crypto 安全消息摘要,消息认证(鉴别)码

java.net.ssl 安全套接字 比如常用类HttpsURLConnection、SSLContext

3.第三方Java扩展

Bouncy Castle 支持两种方案:1.配置;2.调用

Commons Codec Apache提供,支持Base64、二进制、十六进制、字符集编码、Url编码/解码

五、Base64算法介绍与实现

1.Base64算法

(1)算法实现:

JDK

Commons Codec

Bouncy Castle

三种具体实现方式代码可参考本人码云项目:https://gitee.com/kevinshaw/Security

(2)应用场景:

e-mail

密钥

证书文件

(3)Base64:

产生:邮件的“历史问题”,最开始传输非ASCII码值出现问题

定义:基于64个字符的编码算法

关于RFC 2045规范

衍生:Base16,Base32,Url Base64

Base64算法与加解密算法

2.消息摘要算法

3.对称加密算法

4.非对称加密算法

5.数字签名算法

6.数字证书

7.安全协议

六、如何学习

掌握用法

深入理解

不断实践

反复总结

再次深入理解与实践

本文为原创文章,如果对你有一点点的帮助,别忘了点赞哦!比心!如需转载,请注明出处,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息