Java中實(shí)現(xiàn) SHA-256加密的兩種方式
更新時(shí)間:2024年01月02日 16:54:44 作者:飛四海
這篇文章主要介紹了Java中實(shí)現(xiàn) SHA-256加密的兩種方式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
今天對接第三方突然用到這個(gè)加密方式了,找了一些資料都沒有特別好的,所以研究了一下找了到了兩種加密,分享一下。
1、利用Apache的工具類實(shí)現(xiàn)加密
maven:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${common-codec.version}</version>
</dependency>/***
* 利用Apache的工具類實(shí)現(xiàn)SHA-256加密
* @param str 加密后的報(bào)文
* @return
*/
public static String getSHA256Str(String str){
MessageDigest messageDigest;
String encdeStr = "";
try {
messageDigest = MessageDigest.getInstance("SHA-256");
byte[] hash = messageDigest.digest(str.getBytes("UTF-8"));
encdeStr = Hex.encodeHexString(hash);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return encdeStr;
}2.利用Java自帶的實(shí)現(xiàn)加密
/**
* 利用java原生的摘要實(shí)現(xiàn)SHA256加密
* @param str 加密后的報(bào)文
* @return
*/
public static String getSHA256StrJava(String str){
MessageDigest messageDigest;
String encodeStr = "";
try {
messageDigest = MessageDigest.getInstance("SHA-256");
messageDigest.update(str.getBytes("UTF-8"));
encodeStr = byte2Hex(messageDigest.digest());
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return encodeStr;
}
/**
* 將byte轉(zhuǎn)為16進(jìn)制
* @param bytes
* @return
*/
private static String byte2Hex(byte[] bytes){
StringBuffer stringBuffer = new StringBuffer();
String temp = null;
for (int i=0;i<bytes.length;i++){
temp = Integer.toHexString(bytes[i] & 0xFF);
if (temp.length()==1){
//1得到一位的進(jìn)行補(bǔ)0操作
stringBuffer.append("0");
}
stringBuffer.append(temp);
}
return stringBuffer.toString();
}到此這篇關(guān)于Java中實(shí)現(xiàn) SHA-256加密的文章就介紹到這了,更多相關(guān)Java SHA-256加密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)彩色圖片轉(zhuǎn)換為灰度圖片的示例代碼
將彩色圖片轉(zhuǎn)換為灰度圖片是圖像處理中的常見操作,通常用于簡化圖像、增強(qiáng)對比度、或者進(jìn)行后續(xù)的圖像分析,本項(xiàng)目的目標(biāo)是通過Java實(shí)現(xiàn)將彩色圖片轉(zhuǎn)換為灰度圖片,需要的朋友可以參考下2025-02-02
java volatile關(guān)鍵字使用方法及注意事項(xiàng)
這篇文章主要介紹了java volatile關(guān)鍵字使用方法及注意事項(xiàng)的相關(guān)資料,當(dāng)一個(gè)變量被聲明為 volatile 后,java 內(nèi)存模型確保所有使用該變量的線程能看到相同的、一致的值。,需要的朋友可以參考下2017-07-07
MyBatis 中 type-aliases-package的作用(簡化類型映射)
MyBatis中type-aliases-package的作用是簡化類型映射,通過指定包路徑,MyBatis會(huì)自動(dòng)掃描該包下的所有類并為這些類生成類型別名,減少XML配置文件中的冗長代碼,感興趣的朋友跟隨小編一起看看吧2024-11-11
Java RocketMQ 路由注冊與刪除的實(shí)現(xiàn)
這篇文章主要介紹了Java RocketMQ 路由注冊與刪除的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

