java加解密
密码常用术语
- 明文:待加密信息
- 密文:经过加密后的明文
- 加密:明文转为密文的过程
- 加密算法:明文转为密文的转换算法
- 加密密钥:通过加密算法进行加密操作用的密钥
- 解密:将密文转为明文的过程
- 解密算法:将密文转为明文的算法
- 密码协议:也称安全协议,指以密码学为基础的消息交换的通信协议
- 科克霍夫原则:数据的安全基于密钥而不是算法的保密
密码分类
名称 | 别名 | 详细说明 |
---|---|---|
对称密码 | 单钥密码或私钥密码 | 指加密密钥与解密密钥相同 |
非对称密码 | 双钥密码或公钥密码 | 加密密钥与解密密钥不同,密钥分公钥私钥 |
散列函数
验证数据的完整性
特点
- 长度不受限制
- 哈希值容易计算
- 运算结果不可逆
相关算法
- 消息摘要算法MD5等
- SHA--安全散列算法
- MAC--消息认证码算法
数字签名
主要针对以数字的形式存储的消息进行的处理
相关java包、类
- java.security
--消息摘要 - javax.crypto
--安全消息摘要,消息认证(鉴别)码 - java.net.ssl
--安全套接字
第三方扩展
- Bouncy Castle
- Commons Codec
- Apache
- Base64、二进制、十六进制、字符编码集
- Url编码解码
Base64算法
应用场景:e-mail、密钥证书文件
对称加密算法
- DES(Data Encryption Standard)数据加密标准
- 3DES 效率低
- AES 至今未被破解
AES通常用于移动通信系统以及基于SSH协议的软件