公司的网站建设公司,百度下载老版本,网站app用什么语言开发,wordpress添加51统计浅谈常见的加密算法及实现 简介#xff1a; 随着公司业务的发展#xff0c;系统用户量日益增多#xff0c;系统安全性问题一直在脑子里反复回旋#xff0c;以前系统用户少影响面小#xff0c;安全方面也一直没有进行思考和加固#xff0c;现如今业务发展了#xff0c;虽…浅谈常见的加密算法及实现 简介 随着公司业务的发展系统用户量日益增多系统安全性问题一直在脑子里反复回旋以前系统用户少影响面小安全方面也一直没有进行思考和加固现如今业务发展了虽说目前系统还足够的稳定但是也急切的需要对整个系统的数据和接口等安全性做一次全面的考察了。在考察之后我们发现系统对外暴漏的接口以及客户现场部署的系统安全方面都是比较欠缺的于是根据筛查的情况我们制定了一系列的安全加固方案于此同时对加密算法也进行了一次系统的梳理和学习在这里我将把学习的情况分享给大家。
一、详细分析
通常加密分为如下三种
对称加密symmetric例如AES、DES等非对称加密asymmetric例如RSA、DSA等摘要加密digest例如MD5、SHA-1、SHA-256、HMAC等
1对此加密指的是采用单钥密码系统的加密方法同一个可以密钥同时用作信息的加密和解密这种加密方法称为对称加密也称为单密钥加密
算法特征
1、加密方和解密方使用同一个密钥
2、加密解密的速度比较快适合数据比较长时的使用
3、密钥传输的过程不安全且容易被破解密钥管理也比较麻烦
2非对称加密指的是由对应的一对唯一性密钥即公开密钥和私有密钥组成的加密方法。
算法特征
1、由于公钥是公开的而私钥则由用户自己保存所以对于非对称密钥其保密管理相对比较简单
2、因为复杂的加密算法使得非对称密钥加密速度慢成本高
3、非对称加密相比对称加密更安全、可靠。
3摘要加密是一种不需要密钥的加密算法明文进行加密之后生成唯一的密文并且无法破解有不可逆性、唯一性。
算法特征
1、任何数据加密得到的密文长度固定。
2、密文是无法解密的不可逆
二、实现实例
1、对称加密symmetric
对称加密的典型代表是AES如下是我实现的AES加密的代码 AES加密有几个重要的概念密钥初始向量IV加密模式。在编写的过程中需要定义这几个常量 这几个常量需要和加解密双方约定一致其中需要注意的是加密模式有五种加密模式CBC、ECB、CTR、OCF、CFB这个大家可以去了解一下这里不做过度阐释。
2、非对称加密asymmetric
非对称加密的代表是RSA具体实现如下 而实现RSA首先要生成密钥对通过密钥对生成公钥和私钥公钥用于加密私钥用于解密。
3、摘要加密digest
摘要加密的代表是MD5这个大家应该是接触的比较多我们通常系统登录认证采用jwttoken的方案的时候token都是使用MD5的方式加密的。如下是MD5加密的实现代码 MD5算法的实现原理MD5码以512位分组来处理输入的信息且每一分组又被划分为16个32位子分组经过了一系列的处理后算法的输出由四个32位分组组成将这四个32位分组级联后将生成一个128位散列值。 以上都是基于JDK的实现,实现起来会比较繁琐而且容易出bug这里推荐一款小而全的Java工具类库Hutoolhuttool类库的hutool-crypto模块针对这三种加密类型分别封装并提供常用的大部分加密算法具体提供了如下所示的工具类 总结
本文主要梳理了一下常见算法并且给出了常见算法的实现实例代码同时推荐了一款小而全的Java工具类库Hutoolhuttool类库的hutool-crypto模块针对这三种加密类型分别封装并提供常用的大部分加密算法大家有兴趣可以去了解一下。
另外如需本文源码可以留言代码贴图是为了保证格式方便阅读。祝大家端午节安康