提示:本文章为自己总结的好用的加密工具类方法
前言
例如:随着网络信息的不断发展,信息安全这门技术也越来越重要,很多人都开启了学习信息学习,本文就介绍了加密工具类的使用的基础内容。
一、加密包含什么?
加密分为三种:
对称加密(symmetric),例如:AES、DES等 非对称加密(asymmetric),例如:RSA、DSA等 摘要加密(digest),例如:MD5、SHA-1、SHA-256、HMAC等
二、使用步骤
1.在项目的pom.xml的dependencies中加入以下内容:
代码如下:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.0.M3</version>
</dependency>
2.SecureUtil工具类用于快速实现加密。
(1)对称加密-SymmetricCrypto 代码以AES算法为例:
String content = "test中文";
byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();
SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key);
byte[] encrypt = aes.encrypt(content);
byte[] decrypt = aes.decrypt(encrypt);
String encryptHex = aes.encryptHex(content);
String decryptStr = aes.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8);
(2)非对称加密-AsymmetricCrypto 对于非对称加密,最常用的就是RSA和DSA,在Hutool中使用AsymmetricCrypto对象来负责加密解密。 非对称加密有公钥和私钥两个概念,私钥自己拥有,不能给别人,公钥公开。根据应用的不同,我们可以选择使用不同的密钥加密: 签名:使用私钥加密,公钥解密。用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改,但是不用来保证内容不被他人获得。 加密:用公钥加密,私钥解密。用于向公钥所有者发布信息,这个信息可能被他人篡改,但是无法被他人获得。
以RSA为例:
RSA rsa = new RSA();
rsa.getPrivateKey()
rsa.getPrivateKeyBase64()
rsa.getPublicKey()
rsa.getPublicKeyBase64()
byte[] encrypt = rsa.encrypt(StrUtil.bytes("我是一段测试aaaa", CharsetUtil.CHARSET_UTF_8), KeyType.PublicKey);
byte[] decrypt = rsa.decrypt(encrypt, KeyType.PrivateKey);
byte[] encrypt2 = rsa.encrypt(StrUtil.bytes("我是一段测试aaaa", CharsetUtil.CHARSET_UTF_8), KeyType.PrivateKey);
byte[] decrypt2 = rsa.decrypt(encrypt2, KeyType.PublicKey);
总结
以上就是今天要讲的内容,本文仅仅简单介绍了Hutool的一部分使用,而Hutool提供了大量能使我们快速便捷地处理数据的函数和方法。
|