java加密与签名
来源:互联网 发布:dts hd mac 编辑:程序博客网 时间:2024/05/18 02:31
古典密码:以字符为基本加密单元
现代密码:以信息块为基本加密单元
受限制算法:算法保密
基于密钥算法:算法公开,密钥保密
对称密码算法:加密密钥与解密密钥相同
非对称密码算法:加密密钥与解密密钥不同,密钥分为公钥、私钥
散列函数:用来验证数据的完整性。长度不受限制,哈希值容易计算,运算过程不可逆。如MD5,SHA,MAC
OSI安全体系:
网络通信分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP安全体系:网络接口层安全、网络层安全、传输层安全、应用层安全
抗否认性服务——公正机制
数据完整性机制——数据完整性机制
数据保密性服务——加密机制、业务流填充机制
访问控制服务——访问控制机制、路由控制机制
认证(鉴别)服务——认证机制、数字签名机制
Java安全组成:JCA、JCE、JSSE、JAAS
相关java包、类:java.security——消息摘要 ;javax.crypo安全消息摘要,消息认证(鉴别)码;java.net.ssl安全套接字
第三方java扩展:
Bouncy Castle 两种支持方案 1.配置 2.调用
Commons Codec:Apache; Base64、二进制、十六进制、字符集编码;
Base64算法(消息摘要):
算法实现:JDK,
Commons Codec,Bouncy Castle(需下载CC或BC的扩展jar包)
应用场景:e-mail,密钥,证书文件
jdk实现:
//编码
BASE64Encoder encoder = new BASE64Encoder();
String encode = encoder.encode(string.getBytes());
//解码
BASE64Decoder decoder = new BASE64Decoder();
String decode = new String(decoder.decodeBuffer(encode));
CC实现:
//编码
byte[] encodeBytes =Base64.encodeBase64(string.getBytes());
String encode = new String(encodeBytes);
//解码
byte[] decodeBytes = Base64.decodeBase64(encodeBytes);
String decode = new String(decodeBytes);
BC实现:
//编码
byte[] encodeBytes = Base64.encode(string.getBytes());
String encode = new String(encodeBytes);
//解码
byte[] decodeBytes = Base64.decode(encodeBytes);
String decode = new String(decodeBytes);
对称加密算法
加密密钥=解密密钥
常用对称算法:DES,3DES,AES,PBE,IDEA
1.构建密钥 2.公布密钥 3.使用密钥对数据加密 4.发送加密数据 5.使用密钥对数据解密
DES:有漏洞,广受诟病,已不推荐使用。
3DES:三重DES,用的比较多,但效率低。
AES:用的最多的对称算法
1.构建口令 2.公布口令 3.构建盐 4.使用盐、口令对数据加密 5.发送盐、加密数据 6.使用口令,盐对数据解密
PBE:基于口令加密,加盐,结合了消息摘要算法和对称加密算法的优势
非对称加密算法
- java加密与签名
- GPG加密与签名
- gpg加密与签名
- 加密与签名
- 信息签名与加密
- RSA加密解密与签名
- java实现SHA1签名加密
- java RSA加密 RSA签名
- java实现SHA1签名加密
- java实现HMACSHA256加密签名
- 加密方式-非对称加密(RSA加密与签名)
- 一篇搞定RSA加密与SHA签名|与Java完全同步
- RSA签名与RSA加密异同
- RSA加密与SHA签名用法详解
- iOS RSA加密 签名与验签
- java程序实现加密解密以及签名和签名验证
- Java数字证书对文件、加密、解密、签名、校验签名
- Java数字证书对文件/加密/解密/签名/校验签名
- iOS之CoreData学习(一)
- Xpdf使用说明之pdftotext
- 高精度问题分析
- mybatis整合redis重写 生成key的方法
- 古堡算式
- java加密与签名
- Socket编程
- 企业管理的笑话,暗藏真理
- STM32_定时器_PWM_笔记
- IDEA Error:java: 未结束的字符串文字
- #define,const ,static 的使用总结
- ch6.正则表达式
- jqwidgets之jqxGrid后台分页排序过滤
- AppCompatActivity的出现