JAVA 實現的 SHA-256 和 SHA-512 兩種 Hash 演算法的呼叫
JAVA 實現的 SHA-256 和 SHA-512 兩種 Hash 演算法的呼叫。
JAVA 已經實現了 SHA-256 和 SHA-512 兩種 Hash 演算法
利用 java.security.MessageDigest 呼叫已經整合的 Hash 演算法
建立 Encrypt 物件,並呼叫 SHA256 或者 SHA512 並傳入要加密的文字資訊,分別得到 SHA-256 或 SHA-512 兩種被加密的 hash 串。
若要改為 MD5 演算法,修改傳入引數 strType 為 "MD5" 即可得到 MD5 加密功能。
package test;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Encrypt
{
/**
* 傳入文字內容,返回 SHA-256 串
*
* @param strText
* @return
*/
public String SHA256(final String strText)
{
return SHA(strText, "SHA-256");
}
/**
* 傳入文字內容,返回 SHA-512 串
*
* @param strText
* @return
*/
public String SHA512(final String strText)
{
return SHA(strText, "SHA-512");
}
/**
* 字串 SHA 加密
*
* @param strSourceText
* @return
*/
private String SHA(final String strText, final String strType)
{
// 返回值
String strResult = null;
// 是否是有效字串
if (strText != null && strText.length() > 0)
{
try
{
// SHA 加密開始
// 建立加密物件 並傳入加密型別
MessageDigest messageDigest = MessageDigest.getInstance(strType);
// 傳入要加密的字串
messageDigest.update(strText.getBytes());
// 得到 byte 型別結果
byte byteBuffer[] = messageDigest.digest();
// 將 byte 轉換為 string
StringBuffer strHexString = new StringBuffer();
// 遍歷 byte buffer
for (int i = 0; i < byteBuffer.length; i++)
{
String hex = Integer.toHexString(0xff & byteBuffer[i]);
if (hex.length() == 1)
{
strHexString.append('0');
}
strHexString.append(hex);
}
// 得到返回結果
strResult = strHexString.toString();
}
catch (NoSuchAlgorithmException e)
{
e.printStackTrace();
}
}
return strResult;
}
}
相關文章
- 前端框架路由實現的Hash和History兩種模式的區別前端框架路由模式
- 兩種方法使vue實現jQuery呼叫VuejQuery
- LRU 快取淘汰演算法的兩種實現快取演算法
- axios為什麼可以使用物件和函式兩種方式呼叫?是如何實現的?iOS物件函式
- ton函式函式hash的兩種形式函式
- nacos實現Java和.NetCore的服務註冊和呼叫JavaNetCore
- 力扣演算法經典第一題——兩數之和(Java兩種方式實現)力扣演算法Java
- 用 Java 實現的八種常用排序演算法Java排序演算法
- 幾種排序演算法的原理以及 Java 實現排序演算法Java
- Spring實現IOC容器的兩種實現方式Spring
- 雜湊表的兩種實現
- Java和PHP兩種方式實現上傳圖片到新浪微博的圖床JavaPHP圖床
- 單利模式的兩種最佳實現模式
- python 程式池的兩種不同實現Python
- 負載均衡的幾種演算法Java實現程式碼負載演算法Java
- 快速掌握RabbitMQ(四)——兩種種消費模式和QOS的C#實現MQ模式C#
- Java中實現並行請求兩種方式Java並行
- 實現高可用的兩種方案與實戰
- 前端兩種路由實現和使用場景前端路由
- 【演算法】Java實現七種常用排序演算法演算法Java排序
- 用 Java 實現常見的 8 種內部排序演算法Java排序演算法
- 前端--實現隔行變色的兩種方式前端
- Java兩種方式實現連結串列的刪除,返回頭結點Java
- Python爬蟲的兩套解析方法和四種爬蟲實現Python爬蟲
- 二分查詢的兩種實現形式遞迴和迭代遞迴
- 垃圾界定的兩種演算法演算法
- Java實現非同步呼叫Java非同步
- 使用 Java實現mTLS呼叫JavaTLS
- 短連結演算法實現–加鹽hash演算法
- Java實現AES和RSA演算法Java演算法
- 九種排序演算法的 JavaScript 實現排序演算法JavaScript
- JavaScript實現的7種排序演算法JavaScript排序演算法
- Spring宣告式事務的兩種實現方式Spring
- zuul實現Cors跨域的兩種方式(https)ZuulCORS跨域HTTP
- MyBatis中主鍵回填的兩種實現方式MyBatis
- 兩種形式的dma 實現memory copy程式碼
- 深入理解二分的兩種實現
- RabbitMQ實現延時訊息的兩種方法MQ