摘要:SM4国密算法简介 SM4依赖包 SM4类 SM4_Context类 SecuritySM4类 SM4国密算法简介 与DES和AES算法相似,国密SM4算法是一种分组加密算法。SM4分组密码算法是一种迭代分组密码算法,由加解密算法和密钥扩展算法组成。 SM4是一种Feistel结构的分组密码算法,其
阅读全文
摘要:今天百度一些资料偶然发现SimpleDateFormat居然不是线程安全的,平时使用时根本没有考虑,万幸今天发现了这个问题,得把写的代码得翻出来整理一下了。 一般我们使用的SimpleDateFormat一般是这样写的: public void method() { ... DateFormat d
阅读全文
摘要:1、获取年龄>20的人员列表 List<User> list = users.stream().filter(item -> item.getAge() != null && item.getAge() > 20).collect(Collectors.toList()); 2、以ID为Key,用户
阅读全文
摘要:Collection常见工具类: import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; import org.spring
阅读全文
摘要:Collection排序工具类: import java.util.Collections; import java.util.Date; import java.util.List; import org.apache.commons.lang3.StringUtils; public class
阅读全文
摘要:String特殊字符工具类: public class StringEscapeUtil { /** * HTML字符转义 * @see 对输入参数中的敏感字符进行过滤替换,防止用户利用JavaScript等方式输入恶意代码 * @see String input = <img src='http:
阅读全文
摘要:\ 反斜杠 \t 间隔 ('\u0009') \n 换行 ('\u000A') \r 回车 ('\u000D') \d 数字 等价于[0-9] \D 非数字 等价于[^0-9] \s 空白符号 [\t\n\x0B\f\r] \S 非空白符号 [^\t\n\x0B\f\r] \w 单独字符 [a-zA
阅读全文
摘要:String解析工具类: import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringPar
阅读全文
摘要:String格式化工具类: import java.util.Arrays; public class StringFormatUtil { /** * 打印异常信息 等同于 exception.printStackTrace(); * @param exception * @return */ p
阅读全文
摘要:String过滤工具类: package com.taoxw.utils.string; import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringFilterUtil { /** 过滤字符串
阅读全文
摘要:String校验工具类: import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringCheckUtil { /** 是否为手机号 * @param mobileNo * @return */
阅读全文
摘要:String中文工具类: public class ChinaUtil { /** 是否含有中文字符 * @param input * @return */ public static boolean hasChinese(String input) { if(StringCheckUtil.isE
阅读全文
摘要:一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们
阅读全文
摘要:ECDSA 微软的Office、Windows操作系统的验证就是ECDSA算法——椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm),在2000年的时候称为了ANSI和IEEE的标准。特点是:速度快、签名短、强度高。在JDK1.7update
阅读全文
摘要:DSA算法 DSS(Digital Signature Standard),数字签名标准,通过这个标准逐步形成了DSA(Digital Signature Algorithm),数字签名算算法。DSA仅仅包括数字签名,不能进行加解密。实现方式如下: 该算法到的实现和RSA数字签名的实现大同小异(只是
阅读全文
摘要:数字签名 数字签名是带有密钥(公钥、私钥)的消息摘要算法。主要作用是验证数据的完整性、认证数据来源、抗否认。在数字签名的实现中我们使用私钥签名、公钥验证。常用的数字签名算法包括RSA、DSA、ECDSA。 RSA 该算法是数字签名的经典算法。主要包括MD和SHA两类。 应用场景: Java实现RSA
阅读全文
摘要:Elgamal算法 和RSA不同的是它只提供公钥加密,它依靠BouncyCastle实现。 java实现如下: Elgamal加解密工具类: import java.security.AlgorithmParameterGenerator; import java.security.Algorith
阅读全文
摘要:非对称加密算法——RSA RSA是唯一被广泛接受并实现的通用算法。 RSA有两种模式公钥加密私钥解密和私钥加密公钥解密两种模式,其序列图如下: 在RSA算法中公钥的长度远远小于私钥的长度。以下是其java实现: RSA加解密工具类: import java.security.Key; import
阅读全文
摘要:非对称加密算法 加密密钥分为公钥和私钥。可以使用公钥加密私钥解密,也可以使用私钥加密公钥解密。非对称加密算法主要有:DH(Diffie-Hellman)密钥交换算法、RSA(基于因子分解)、Elgamal(基于离散对数)、ECC(Elliptical Curve Cryptography,椭圆曲线加
阅读全文
摘要:PBE PBE算法结合了消息摘要算法和对称加密算法的优点,是一种特殊的对称加密算法。Password Based Encryption,基于口令的加密。因为口令是比较好记的,就容易通过穷举、猜测的方式获得口令——针对这种情况,我们采用的方式是加盐(Salt),通过加入一些额外的内容(通常是随机字符)
阅读全文