加密与解密的实现

加密与解密的实现

前言

最近在考虑数据传输过程中的安全问题,大体了解了几种加密方式的原理,在这里使用Java来实现。

Demo项目地址EncryptionSample

对称加密

使用方式:加密和解密使用相同的秘钥

特点:速度快

常用加密方式:AES(Advanced Encryption Standard)

具体实现可见AESSample

非对称加密

使用方式:加密和解密使用不同的两个秘钥,把加密的秘钥公开,称为公钥,另一把用于解密,称为私钥。

特点:相对于对称加密更安全,速度相对对称加密慢

常用加密方式:RSA(三个人的姓氏首字母)

具体实现可见RSASample

数字签名

用于发送的数据没有被篡改过

使用方式:将数据进行规则排列,使用hash计算生成一个不可逆的字符串,用于数据完整性的验证

特点:不可逆,速度极快

常用加密方式:MD5, SHA1

具体实现可见MD5Sample, SHA1Sample

数字证书(Certificate Authority)

是认证机构证明是真实的服务器发送的数据

已经使用另外的Demo实现了自签名的证书,后面会发布

参考

对称加密和非对称加密、数字签名、数字证书的区别

MD5、对称加密、非对称加密的比较区别(干货

对称加密与非对称加密

你可能感兴趣的:(加密与解密的实现)