用java實現位元幣區塊鏈的SHA256雜湊演演算法

2020-10-22 14:00:49


前言

上次總結了一下加密演演算法的分類(加密演演算法有幾種形式,各有什麼不同?),也用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;


/**
 *SM4Test
 * @author larry.xiang
 *
 */
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