概述
包含的内容
- 安全和密码
- 常用安全体系介绍
- 密码分类及java的安全组成
- JDK相关包及第三方扩展
- Base64算法介绍
学习方法
- 掌握用法
- 深入理解
- 不断实践
- 反复总结
- 再次深入理解与实践
密码的常用术语
- 明文:待加密信息。
- 密文:经过加密后的明文
- 加密:明文转为密文的过程
- 加密算法:明文转为密文的转换算法
- 加密密钥:通过加密算法进行加密操作用的密钥
- 解密:将密文转为明文的过程
- 解密算法:密文转为明文的算法
-
解密密钥:通过解密算法进行解密操作用的密钥
- 密码分析:截获密文者试图通过分析截获的密文从而推断出原来的明文或密钥的过程
- 主动攻击:攻击者非法入侵密码系统,采用伪造、修改、删除等手段向系统注入假消息进行欺骗(对密文有破坏作用)
- 被动攻击:对一个保密系统采取截获密文并对其进行分析和攻击。(对密文没有破坏作用)
-
密码体制:由明文空间、密文空间、密钥空间、加密算法和解密算法五部分构成。
- 密码协议:也称安全协议,指以密码学为基础的消息交换的通信协议,目的是在网络环境中提供安全的服务。
- 密码系统:指用于加密、解密的系统
- 科克霍夫原则:数据的安全基于密钥而不是算法的保密。即系统的安全取决于密钥,对密钥保密,对算法公开。–现代密码学设计的基本原则。
密码分类
时间:
- 古典密码:以字符为基本加密单元
- 现在密码:以信息块为基本加密单元
保密内容:
- 受限制算法
- 基于密钥算法
密码体制:
- 对称密码
- 非对称密码
- 对称密码算法
- 非对称密码算法
明文处理方法:
- 分组密码
- 流密码:序列密码
散列函数
散列函数:用来验证数据的完整性
特点:
- 长度不受限制
- 哈希值容易计算
- 散列运算过程不可逆
相关的算法:
- 消息摘要算法MD5等
- SHA–安全散列算法
- MAC–消息认证码算法
数字签名
数字签名:主要是针对以数字的形式存储的消息进行的处理
OSI安全体系
Java安全组成、包及第三方扩展
相关Java包、类
- java.security
- 消息摘要
- javax.crypto
- 安全消息摘要,消息认证(鉴别)码
- java.net.ssl
- 安全套接字
- HttpsURLConnection、SSLContext
- 安全套接字
第三方扩展
- Bouncy Castle
- 两种支持方案: 1.配置;2.调用
- Commons Codec
- Apache
- Base64、二进制、十六进制
- Url编码/解码
实现Base64算法
Base64算法
应用场景
- 密钥
- 证书文件
产生:邮件的“历史问题”
定义:基于64个字符的编码算法
关于RFC 2045
衍生: Base16、Base32、Url Base64
Base64算法与加解密算法