文章目录
前言一、使用步骤1.引入库2.创建maven测试工程2.开始编写对称加密SHA256测试方法3.测试结果看看第三方平台生成的:
总结
前言
上次总结了一下加密算法的分类(加密算法有几种形式,各有什么不同?),也用java语言实现一下SM4:无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。现在来实现一下比特币区块链的SHA256散列算法
ps:我们既可以基于Java 原生实现加密和解密,又可以基于第三方的工具包实现。下面我们首先介绍基于第三方工具包 hutool,如果是项目的话建议直接使用第三方的工具。
一、使用步骤
1.引入库
在项目的pom.xml的dependencies中加入以下内容:
<dependency>
<groupId>cn.hutool
</groupId>
<artifactId>hutool-all
</artifactId>
<version>5.4.5
</version>
</dependency>
<dependency>
<groupId>org.bouncycastle
</groupId>
<artifactId>bcprov-jdk15to18
</artifactId>
<version>1.66
</version>
</dependency>
说明: bcprov-jdk15to18的版本请前往Maven中央库搜索,查找对应JDK的最新版本。
2.创建maven测试工程
2.开始编写对称加密SHA256测试方法
package org
.xiangbiao
;
import cn
.hutool
.crypto
.SecureUtil
;
public class SHA256Test
{
public static void main( String
[] args
)
{
String key
= "我是一段测试字符串";
String str
= SecureUtil
.sha256(key
);
System
.out
.println(str
);
}
}
3.测试结果
看看第三方平台生成的:
还是能对的上,表示正常!
总结
比较简单不做过多的介绍,简单列举一下hutool中函数的定义:
public static String sha256(String data)
SHA256加密,生成16进制SHA256字符串
Parameters:
data - 数据
Returns:
SHA256字符串
Since:
4.3.2