上次總結了一下加密演演算法的分類(加密演演算法有幾種形式,各有什麼不同?),也用java語言實現一下SM4:無線區域網標準的分組資料演演算法。對稱加密,金鑰長度和分組長度均為128位元。現在來實現一下位元幣區塊鏈的SHA256雜湊演演算法
ps:我們既可以基於Java 原生實現加密和解密,又可以基於第三方的工具包實現。下面我們首先介紹基於第三方工具包 hutool,如果是專案的話建議直接使用第三方的工具。
<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的最新版本。
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);
}
}
還是能對的上,表示正常!
比較簡單不做過多的介紹,簡單列舉一下hutool中函數的定義:
public static String sha256(String data)
SHA256加密,生成16進位制SHA256字串
Parameters:
data - 資料
Returns:
SHA256字串
Since:
4.3.2