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兩種模式的區別前端框架路由模式
- hash和history兩種模式的區別模式
- PHP呼叫java類的兩種方法(轉)PHPJava
- 兩種方法使vue實現jQuery呼叫VuejQuery
- 【策略】一致性Hash演算法(Hash環)的java程式碼實現演算法Java
- LRU 快取淘汰演算法的兩種實現快取演算法
- js實現兩種實用的排序演算法——冒泡、快速排序JS排序演算法
- 力扣演算法經典第一題——兩數之和(Java兩種方式實現)力扣演算法Java
- ton函式函式hash的兩種形式函式
- 幾種排序演算法的原理以及 Java 實現排序演算法Java
- 用 Java 實現的八種常用排序演算法Java排序演算法
- 雜湊表的兩種實現
- Java和PHP兩種方式實現上傳圖片到新浪微博的圖床JavaPHP圖床
- Spring實現IOC容器的兩種實現方式Spring
- 單利模式的兩種最佳實現模式
- 基於BKDRhash實現Hash演算法演算法
- nacos實現Java和.NetCore的服務註冊和呼叫JavaNetCore
- TSS提出兩種新的EJB呼叫模式模式
- 對一致性Hash演算法,Java程式碼實現的深入研究演算法Java
- Java中實現並行請求兩種方式Java並行
- 前端兩種路由實現和使用場景前端路由
- 負載均衡的幾種演算法Java實現程式碼負載演算法Java
- Java實現一致性Hash演算法深入研究Java演算法
- 快速掌握RabbitMQ(四)——兩種種消費模式和QOS的C#實現MQ模式C#
- 實現高可用的兩種方案與實戰
- 實現AS3的Singleton的兩種方法S3
- 使用JNA實現Java對C的呼叫Java
- 【演算法】Java實現七種常用排序演算法演算法Java排序
- 經典演算法之基數排序兩種實現演算法排序
- 前端--實現隔行變色的兩種方式前端
- python 程式池的兩種不同實現Python
- 垃圾界定的兩種演算法演算法
- Java兩種方式實現連結串列的刪除,返回頭結點Java
- 二分查詢的兩種實現形式遞迴和迭代遞迴
- 用 Java 實現常見的 8 種內部排序演算法Java排序演算法
- 一個hash表的實現
- 【轉載】對一致性Hash演算法,Java程式碼實現的深入研究演算法Java
- Java 實現 Map 和 Object 互相轉換的幾種方法JavaObject