SM3简介:
- SM3是国产哈希算法
- SM3采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布。相关标准为“GM/T 0004-2012 《SM3密码杂凑算法》”。
- 在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开。
- 据国家密码管理局表示,其安全性及效率与SHA-256相当。
- 消息和摘要:散列函数的输入数据,通常被称为消息(message);而它的输出结果,经常被称为消息摘要(message digest)或摘要(digest)。
密码散列函数的特点:
一个理想的密码散列函数应该有四个主要的特性:
- 对于任何一个给定的消息,它都很容易就能运算出散列数值。
- 难以由一个已知的散列数值,去推算出原始的消息。
- 在不更动散列数值的前提下,修改消息内容是不可行的。
- 对于两个不同的消息,它不能给与相同的散列数值。
SM3的工具类的实现:
可以使用bcprov和hutool两个库来分别实现。
包的引入(pom文件):
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15to18</artifactId>
<version>1.64</version>
</dependency>
<dependency>
<groupId>cn.hutool