Hutool

Java使用Hutool实现AES、DES加密解密

此生再无相见时 提交于 2019-11-28 21:24:26
介绍 AES和DES同属 对称加密 算法,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。 在Java世界中,AES、DES加密解密需要使用Cipher对象构建加密解密系统, Hutool 中对这一对象做再包装,简化了加密解密过程。 引入Hutool <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.1.2</version> </dependency> 使用 AES加密解密 String content = "test中文"; //随机生成密钥 byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded(); //构建 AES aes = SecureUtil.aes(key); //加密 byte[] encrypt = aes.encrypt(content); /

Hutool之时间工具——DateUtil

不想你离开。 提交于 2019-11-27 19:28:55
时间工具类 DateUtil 考虑到Java本身对日期时间的支持有限,并且Date和Calendar对象的并存导致各种方法使用混乱和复杂,故使用此工具类做了封装。这其中的封装主要是日期和字符串之间的转换,以及提供对日期的定位(一个月前等等)。 对于Date对象,我为了便捷,使用了一个DateTime类来代替之,继承自Date对象,主要的便利在于,覆盖了toString()方法,返回 yyyy-MM-dd HH:mm:ss 形式的字符串,方便在输出时的调用(例如日志记录等)。 1. now 、 today 方法 返回当前时间和日期,第一个方法返回的格式为 yyyy-MM-dd HH:mm:ss ,第二个返回的格式为 yyyy-MM-dd 2. date 方法 当前时间的DateTime对象(相当于new DateTime()或者new Date()),此外还提供一个重载方法,传递long类型参数,是给定一个Unix时间戳,返回这个时间戳的时间。 3. yearAndSeason 方法 根据给定的Date对象返回一个年份和季节的字符串,例如20132表示2013年第二季度,同时提供一个 yearAndSeasons 方法,传入两个时间对象,提供这两个时间范围内的所有季节字符串。 4.格式化日期 格式化日期时间,最常用的是 formatDateTime 、 formatDate 方法

使用Hutool处理RSA等非对称加密

℡╲_俬逩灬. 提交于 2019-11-27 05:03:46
介绍 Hutool工具是一个国产开源Java工具集,旨在简化Java开发中繁琐的过程,Hutool-crypto模块便是针对JDK加密解密做了大大简化。 此文主要介绍利用Hutool-crypto简化非对称加密解密。 对于非对称加密,最常用的就是RSA和DSA,在Hutool中使用 AsymmetricCrypto 对象来负责加密解密。 非对称加密有公钥和私钥两个概念,私钥自己拥有,不能给别人,公钥公开。根据应用的不同,我们可以选择使用不同的密钥加密: 签名:使用私钥加密,公钥解密。用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改,但是不用来保证内容不被他人获得。 加密:用公钥加密,私钥解密。用于向公钥所有者发布信息,这个信息可能被他人篡改,但是无法被他人获得。 使用 引入Hutool <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.1.2</version> </dependency> 在非对称加密中,我们可以通过 AsymmetricCrypto(AsymmetricAlgorithm algorithm) 构造方法,通过传入不同的算法枚举,获得其加密解密器。 当然,为了方便