本文主要是介绍SM3摘要工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
SM3 是国家密码管理局于 2010 年发布的一种国产消息摘要算法,它采用了 256 位哈希函数,其安全性已被国际公认。SM3 算法的主要特点是安全性高、效率高、易于实现,因此被广泛应用于电子商务、电子政务、金融等领域。
1、引入依赖类库
在pom.xml文件中,引入依赖类库
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><!--<version>5.1.4</version>-->
</dependency>
2、代码
借助hutool工具类库
import cn.hutool.crypto.SmUtil;
import java.io.File;
import java.io.InputStream;/*** SM3 是国家密码管理局于 2010 年发布的一种国产消息摘要算法,它采用了 256 位哈希函数,其安全性已被国际公认。* SM3 算法的主要特点是安全性高、效率高、易于实现,因此被广泛应用于电子商务、电子政务、金融等领域。** SM3 算法由以下几个部分组成:* * 初始化:SM3 算法使用一个 256 位的初始向量 IV 进行初始化。* * 消息扩展:SM3 算法使用一个 512 位的扩展函数,将明文消息扩展成 512 位的消息块。* * 消息分组:SM3 算法将消息块分成 16 个 32 位的子块。* * 循环运算:SM3 算法使用一个 4 轮循环运算,对每个子块进行计算。* * 输出:SM3 算法将循环运算的结果连接起来,得到一个 256 位的摘要值。*/public class Sm3Utils {public Sm3Utils() {}public static String sm3(String data) {return SmUtil.sm3(data);}public static String sm3(InputStream data) {return SmUtil.sm3(data);}public static String sm3(File dataFile) {return SmUtil.sm3(dataFile);}public static void main(String[] args) {String encryptStr = SmUtil.sm3("SM3 Test");System.out.println("SM3 摘要值:" + encryptStr);}}
仅供参考!
这篇关于SM3摘要工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!