cooking java ——加密解密

java安全与密码概述

主要分为三部分:

  • 密码学基础,包括:相关术语;分类;常用安全体系。
  • java的安全组成;jdk以及第三方扩展。
  • 相关实现代码,包括:base64、MD5········

密码学基础

相关术语

  • 明文:待加密的信息
  • 密文:加密后的明文
  • 加密:明文转密文
  • 加密算法:明文转密文的算法
  • 加密密钥:加密算法进行加密操作的密钥
  • 解密:密文转为明文
  • 解密算法:密文转成明文的算法
  • 解密密钥:解密算法进行解密操作的密钥
  • 密码分析:截取密文,通过分析推出明文或密钥
  • 密码体系:明文空间、密文空间、密钥空间、加密算法、解密算法
  • 密码协议:安全协议,以密码学为基础的信息交换通信协议
  • 密码系统:加密,解密的系统
  • 柯克霍夫原则:数据的安全集与密钥而不是算法,对密钥保密,对算法公开,现代密码学设计的基本原则

分类

按时间分类:

  • 古典密码:以字符为基本加密单元
  • 现代密码:以信息块为基本加密单元

按保密内容分类:

  • 受限制算法:保密性基于算法的保密
  • 集与密钥算法:保密性基于对密钥的保密

明文处理方法分类:

  • 分组密码:用同一密钥和算法加密固定长度的组
  • 流密码:也称序列密码,每次加密一位或者一个字节

密码体系

  • 对称密码:加密解密密钥相同
  • 非对称密码:密钥分公钥和私钥,加密解密密钥不相同
  • 对称密码算法:应用于对称密码的加密,解密算法
  • 非对称密码算法:应用于非对称密码的加密,解密算法

散列函数

用于验证数据的完整性,特点是:

  • 长度不受限制
  • 哈希值容易计算
  • 散列原酸过程不可逆

有这些特性,发展处很多有关散列函数相关的算法,如:

  • 消息摘要算法MD5
  • SHA:安全散列算法
  • MAC:消息认证码算法

安全体系

常用的安全体系有两种:OSI安全体系和TCP/IP安全体系,这儿就不过多讲解,放两张安全体系图大致了解下即可。

cooking java ——加密解密cooking java ——加密解密cooking java ——加密解密

java安全体系

组成

  • JCA(Java Cryptography Architecture)
  • JCE(Java Cryptography Extension)
  • JSSE(Java Secure Socket Extension)
  • JAAS(Java Authentication and Authentication Service)

相关包和类

  • java.security:消息摘要
  • java.crypto:安全消息摘要,消息认证鉴别码
  • java.net.ssl:安全套接字

第三方扩展

  • Bouncy Castle:支持两种方式使用,一是在jdk中配置,再者就是调用addprovider
  • Commons Codec:是apache开源项目,支持BASE64,URL编码解码
上一篇:lua堆栈操作常用函数学习二


下一篇:iOS下如何阻止橡皮筋效果