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