MD(Message Digest ) 訊息摘要演算法之SHA
SHA演算法的基本概念
SHA,全稱為“Secure Hash Algorithm”,中文名“安全雜湊演算法”,主要適用於數字簽名標準(Digital Signature Standard DSS)裡面定義的數字簽名演算法(Digital Signature Algorithm DSA)。對於長度小於 2^64 位的訊息,SHA1 會產生一個 160 位的訊息摘要。 該演算法的思想是接收一段明文,然後以一種不可逆的方式將它轉換成一段(通常更小)密文,也可以簡單的理解為取一串輸入碼(稱為預對映或資訊),並把它們轉化為長度較短、位數固定的輸出序列即雜湊值的過程。 SHA-1 有兩個特點- 不可以從訊息摘要中復原資訊
- 兩個不同的訊息,不會產生同樣的訊息摘要
SHA演算法的種類
SHA-1 與 MD5 的比較
因為二者均由 MD4 匯出,SHA-1 和 MD5 彼此很相似。相應的,他們的強度和其他特性也是相似,但還有以下幾點不同:- 對強行攻擊的安全性
- 對密碼分析的安全性
- 速度
SHA系列演算法程式設計使用
SHA系列演算法使用程式碼
測試程式碼import java.security.MessageDigest; public class SHAUtils { /** * SHA演算法 * * @param data * @return */ public static String encryptSHA(byte[] data) { try { // 判斷資料的合法性 if (data == null) { throw new RuntimeException("資料不能為NULL"); } // 獲取SHA演算法的型別 MessageDigest sha = MessageDigest.getInstance("SHA-512"); // 加入資料 sha.update(data); // 獲取訊息摘要 byte[] resultBytes = sha.digest(); // 將位元組陣列轉換為16進位制 String resultString = fromBytesToHex(resultBytes); // 返回 return resultString; } catch (Exception e) { throw new RuntimeException(e); } } /** * SHA演算法 * * @param data * @return */ public static String encryptSHA(String data) { try { // 判斷資料的合法性 if (data == null) { throw new RuntimeException("資料不能為NULL"); } // 獲取SHA演算法的型別 MessageDigest sha = MessageDigest.getInstance("SHA-512"); // 加入資料 sha.update(data.getBytes()); // 獲取訊息摘要 byte[] resultBytes = sha.digest(); // 將位元組陣列轉換為16進位制 String resultString = fromBytesToHex(resultBytes); // 返回 return resultString; } catch (Exception e) { throw new RuntimeException(e); } } /** * 將位元組陣列轉化為16進位制 * * @param resultBytes * @return */ private static String fromBytesToHex(byte[] resultBytes) { StringBuilder builder = new StringBuilder(); for (int i = 0; i < resultBytes.length; i++) { if (Integer.toHexString(0xFF & resultBytes[i]).length() == 1) { builder.append("0").append( Integer.toHexString(0xFF & resultBytes[i])); } else { builder.append(Integer.toHexString(0xFF & resultBytes[i])); } } return builder.toString(); } }
public class Test {
// 待加密的明文
public static final String DATA = "test";
public static void main(String[] args) throws Exception {
/* Test SHA */
String shaResult = SHAUtils.encryptSHA(DATA.getBytes());
System.out.println(DATA + ">>>SHA>>>" + shaResult);
}
}
相關推薦
MD(Message Digest ) 訊息摘要演算法之SHA
上一篇文章中介紹了基本的單向加密演算法 — — MD5,也大致的說了說它實現的原理。這篇文章繼續之前提到的單向加密,主要講的是 SHA,同 MD5 一樣,SHA 同樣也是一個系列,它包
MD(Message Digest ) 訊息摘要演算法之MD5
1、訊息摘要的簡介 1.1訊息摘要的概念 唯一對應一個訊息或文字
Message Digest Algorithm MD5(訊息摘要演算法第五版)簡單瞭解
Message Digest Algorithm MD5(訊息摘要演算法第五版)為電腦保安領域廣泛使用的一種雜湊函式,用以提供訊息的完整性保護。 該演算法的檔案號為RFC 1321(R.Rivest,MIT Laboratory for Computer Sc
MD、SHA、MAC訊息摘要演算法實現與應用
1.訊息摘要概述 訊息摘要(Message Digest)又稱為數字摘要(Digital Digest)。它是一個唯一對應一個訊息或文字的固定長度的值,它由一個單向Hash加密函式對訊息進行作用而產生。如果訊息在途中改變了,則接收者通過對收到訊息的新產生的摘要與原摘要比較,就可知道訊息是否被改變了。因此訊息摘
Java常用訊息摘要演算法-SHA
SHA是比較常用的訊息摘要演算法之一,其中比較常見的有SHA-1,SHA-256,SHA-512。這裡用Java程式碼實現一個簡單的工具類,可以提取字串或者檔案的SHA值。import java.io.File; import java.io.FileInputStream;
Java加密系列之(三)訊息摘要演算法加密
訊息摘要演算法的分類 MD(Message Digest)訊息摘要 SHA(Secure Hash Algorithm)安全雜湊 MAC(Message Authentication Code)訊息認證碼 訊息摘要演算法的作用 訊息摘要演算法主要有以上3類,這3類演算法的
訊息摘要演算法-SHA
SHA 安全雜湊演算法 雜湊演算法:雜湊是資訊的提煉,通常其長度要比資訊小很多,且為一個固定長度,加密性強的雜湊一定是不可逆的,這就意味著通過雜湊結果,無法推出任何部分的原始資訊,任何輸入資訊的變化,哪怕是一位,都將導致雜湊結果的明顯變化,雜湊還是防衝突的,即找不出具有相同
java/訊息摘要演算法&數字簽名
一。訊息摘要演算法 常用摘要演算法: 以下 (HEX)內容:bc指Bouncy Castle | cc指:Apache commons Codec 1。訊息摘要演算法MD5及MD族(MD2,MD4) 訊息摘要演算法應用: MD
訊息摘要演算法(慕課網視訊總結與知識梳理)
訊息摘要演算法分類: MD(Message Digetst):訊息摘要 SHA(Secure Hash Algorithm):安全雜湊 MAC(Message Authentication Code):訊息認證碼 以上演算法主要是用來驗證資料的完
Go語言實現單向雜湊函式 —— MD5訊息摘要演算法、SHA256與224(Go語言實現)
MD5訊息摘要演算法 MD5訊息摘要演算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的密碼雜湊函式,可以產生出一個128位(16位元組)的雜湊值(hash value),用於確保資訊傳輸完整一致。 Go語言實現方式一: packag
Java實現訊息摘要演算法加密
訊息摘要演算法: MD(Message Digest) 訊息摘要 SHA(Secure Hash Algorithm) 安全雜湊 MAC(Message Authentication Code) 訊息認證碼 作用:(驗證資料完整性、數字簽名核心演算法) 將輸入的任意長度序列資
密碼學演算法之 SHA-3 keccak 演算法
Author: John sha3 雜湊加密演算法,不可逆 Keccak演算法,sha家族最新演算法,採用的不同於 MD(如md5) 結構的海綿結構(sponge結構
密碼學摘要演算法之SHA2
密碼學摘要演算法之SHA2 簡述 原理 簡述 前面的篇章中我們已經說明過,SHA實際包括有一系列演算法,分別是SHA-1、SHA-224、SHA-256、SHA-384以及SHA-512。而我們所說的SHA2實際是對後面4中的統稱。各種SHA
密碼學摘要演算法之SHA1
密碼學摘要演算法之SHA1 SHA介紹 思想 處理過程 與MD5的區別 SHA介紹 SHA演算法,即安全雜湊演算法(Secure Hash Algorithm)是一種與MD5同源的資料加密演算法,該演算法經過加密專家多年來的發展和
密碼學摘要演算法之MD5
密碼學摘要演算法之MD5 摘要演算法 MD5 原理 特點 用途 防止被篡改,一致性檢驗 數字簽名(防止抵賴或者說版權) 舉例: 安全訪問認證 搜尋
HMAC-SHA1和MD5 訊息摘要演算法(java)
最近專案中需要對接支付,用到HMAC-SHA1和MD5兩種加密演算法,簡單回顧一下。 一、HMAC-SHA1 HMAC是金鑰相關的雜湊運算訊息認證碼(Hash-based Message Authentication Code),HMAC運算利用雜湊演算法,以一個金鑰和
java訊息摘要演算法加密
訊息摘要演算法加密 訊息摘要演算法主要分為3類:MD(Message Digest)、SHA(Secure Hash Algorithm)、MAC(Message Authentication Code),以上3類演算法的主要作用是驗
資訊摘要演算法之二:SHA1演算法分析及實現
SHA演算法,即安全雜湊演算法(Secure Hash Algorithm)是一種與MD5同源的資料加密演算法,該演算法經過加密專家多年來的發展和改進已日益完善,現在已成為公認的最安全的雜湊演算法之一,並被廣泛使用。1、概述SHA演算法能計算出一個數位資訊所對應到的,長度固定
MD5 (Message Digest Algorithm 5 資訊—摘要演算法5 ) 的一些體會 .
MD5 (Message Digest Algorithm 5 資訊—摘要演算法5 ) 的一些體會 一、若我們定義一個函式 ,原型為: String MD5 ( Information info) 其中Information 表示任意長度的資訊,注意是任意長度的。 實現這個函式的最終要求:
.NET Core加解密實戰系列之——訊息摘要與數字簽名演算法
![](https://img2020.cnblogs.com/blog/2029875/202006/2029875-20200629172528304-1596961448.png) --- [TOC] ## 簡介 加解密現狀,編寫此係列文章的背景: - 需要考慮系統環境相容性問題(Linux、W