java加密与解密技术
一、对称加密算法
一、对称加密算法————DES(已被破解)
二、对称加密算法————3重DES
1、出现的原因:违反柯克霍夫原则;安全问题
2、3重DES的好处:密钥长度增强;迭代次数提高
三、对称加密算法————AES
1、AES是目前使用的最多的对称加密算法(尚未破解)
AES通常用于移动通信系统加密以及基于SSH协议的软件
SSH Client、secureCRT
2、高级(DES的替代者)
四、对称加密算法————PBE
PBE:基于口令加密
对已有算法的包装
JDK、BC
盐(salt)
PBEWithMD5AndDES
五、回顾(实际操作中是需要传送的)
二、非对称加密算法
1、高级;双保险;公钥、私钥(成对出现)
DH(Diffie-Hellman)密钥交换算法;
RSA-基于因子分解(数字加密和数字签名)
ElGamal-基于离散对数
ECC-椭圆曲线加密算法
2、DH(Diffie-Hellman)密钥交换算法(Provider())
构建本地密钥
-初始化发送方密钥
-keyPairGenerator
-keyPair
-PublicKey
//创建keyPairGenerator对象
keyPairGenerator senderKeyPairGenerator=keyPairGenerator.getInstance("DH");
-初始化接收方密钥
-KeyFactory()
-X509EncodedKeySpec(根据ASN.1标准进行密钥编码)
-DHPublicKey
-DHParameterSpec(DH使用参数的集合)
-keyPairGenerator
-PrivateKey
注:generatePublic()方法用来生成公钥
generatePrivate()方法用来生成私钥
-密钥构建
-KeyAgreement(提供密钥协定协议Instance)
-SecretKey(秘密密钥,)
-KeyFactory
-X509EncodedKeySpec
-PublicKey
-加密、解密
-Cipher
3、非对称加密算法-RSA(速度慢)
-唯一广泛接受并实现
-数据加密&数字签名
-公钥加密、私钥解密
-私钥加密、公钥解密
4、非对称加密算法-ElGamal
-公钥加密算法
-Bouncy Castle(bc)
三、Java实现Base64加密
java安全组成
-JCA()、JCE(des、aes、rsa算法通过jce提供)、JSSE(提供基于SSL的加密功能,主要用于网络传输)、JAAS(权限的问题)
使用第三方提供的安装包,修改jdk包中的jre/lib/secerty(修改方式百度)
算法实现
jdk
Commons Codec
Bouncy Castle
http://zh.wikipedia.org
四、java实现消息摘要算法加密
1、消息摘要算法
-MD
-SHA
-MAC
-作用:验证数据完整性;数字签名核心算法
2、消息摘要算法-MD
-MD5
-MD家族(128位摘要信息)
-MD2、MD4(电驴)

浙公网安备 33010602011771号