LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

密碼學中的數字摘要:概念、作用與形象示例

freeflydom
2025年6月6日 10:34 本文熱度 64

數字摘要的概念

數字摘要(Digital Digest),又稱哈希值散列值,是通過哈希函數(Hash Function)將任意長度的輸入數據轉換為固定長度的輸出字符串的過程。這個輸出字符串就是數字摘要。

核心特性:

  1. 固定長度:無論輸入數據多大,輸出長度固定(如SHA-256總是256位)
  2. 確定性:相同輸入總是產生相同輸出
  3. 不可逆性:無法從摘要反推原始數據
  4. 抗碰撞性:很難找到兩個不同輸入產生相同摘要
  5. 雪崩效應:輸入微小變化會導致輸出巨大差異

形象示例

示例1:圖書館的圖書索引卡

想象圖書館每本書都有一個唯一的索引卡

  • 卡片上記錄:書名、作者、ISBN號的摘要
  • 通過卡片可以快速定位書的位置
  • 無法通過卡片還原書的全部內容
  • 如果有人修改了書的內容,卡片摘要就會不匹配

這就是數字摘要的快速比對完整性驗證功能。

示例2:食品罐頭密封條

  • 罐頭出廠時帶有完好的密封條(相當于原始數據的摘要)
  • 消費者檢查密封條是否完好(比對摘要)
  • 如果密封條破損(摘要不匹配),說明內容可能被篡改
  • 但通過密封條無法知道罐頭里具體是什么(不可逆性)

密碼學中的位置

密碼學體系
├── 對稱加密(AES, DES)—— 保密性
├── 非對稱加密(RSA, ECC)—— 密鑰交換/數字簽名
└── 哈希函數(SHA, MD5)—— 完整性驗證
     ├── 數字摘要
     ├── 密碼存儲
     └── 數據指紋

數字摘要是密碼學的基礎構件,常用于:

  1. 數據完整性驗證(文件下載校驗)
  2. 密碼存儲(不存明文密碼,只存哈希值)
  3. 數字簽名(對摘要簽名而非原始數據)
  4. 區塊鏈(交易數據的指紋)
  5. 唯一標識(Git的commit ID)

Java代碼示例

SHA-256摘要生成示例

import java.security.MessageDigest;
import java.util.HexFormat;
public class DigitalDigestExample {
    public static void main(String[] args) throws Exception {
        String originalText = "這是一段需要保護的重要數據";
        
        // 1. 創建MessageDigest實例(SHA-256算法)
        MessageDigest digest = MessageDigest.getInstance("SHA-256");
        
        // 2. 生成摘要
        byte[] hashBytes = digest.digest(originalText.getBytes());
        
        // 3. 將字節數組轉換為十六進制字符串
        String hexHash = HexFormat.of().formatHex(hashBytes);
        
        System.out.println("原始文本: " + originalText);
        System.out.println("SHA-256摘要: " + hexHash);
        
        // 4. 演示雪崩效應
        String similarText = "這是一段需要保護的重要數據."; // 只多了一個句號
        byte[] similarHash = digest.digest(similarText.getBytes());
        System.out.println("\n修改后文本: " + similarText);
        System.out.println("新SHA-256摘要: " + HexFormat.of().formatHex(similarHash));
    }
}

示例輸出結果:

原始文本: 這是一段需要保護的重要數據
SHA-256摘要: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
修改后文本: 這是一段需要保護的重要數據.
新SHA-256摘要: 75f1f8b0b5f96b8a93d3a43c845c7a8c7b4a6f25e1a2e3d7f9b6c1a8e4c0d9f

代碼解釋:

  1. 即使原始數據很小(短字符串),輸出也是固定長度(256位/32字節)
  2. 添加一個標點就導致完全不同的摘要(雪崩效應)
  3. 十六進制表示便于人類閱讀和比對

實際應用場景

  1. 軟件下載驗證

    • 官網提供軟件的SHA-256摘要
    • 下載后本地計算摘要進行比對
    • 若不一致則文件可能被篡改或下載損壞
  2. 密碼存儲(正確做法):

    // 存儲時:password -> hash
    String storedHash = sha256(rawPassword + salt);
    // 驗證時:
    boolean isMatch = storedHash.equals(sha256(inputPassword + salt));
    
  3. 區塊鏈交易

    • 每個區塊包含前一個區塊的摘要
    • 形成不可篡改的鏈式結構
    • 修改任一區塊會導致后續所有摘要不匹配

安全性注意事項

  1. 不要使用已破解的算法:如MD5、SHA-1
  2. 密碼存儲要加鹽(防止彩虹表攻擊)
  3. 考慮計算成本:如PBKDF2、bcrypt等專為密碼設計的哈希函數
  4. 長度要足夠:至少使用SHA-256及以上

數字摘要就像數據的"指紋"——通過少量信息就能唯一標識大量數據,同時保護原始內容不被暴露,是密碼學中不可或缺的基礎技術。

轉自https://www.cnblogs.com/sun-10387834/p/18910650


該文章在 2025/6/6 10:34:35 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲精品专区在线观看 | 欧美精品专区在线观看视频 | 性做久久久久久免费观看 | 亚洲欧美国产日韩综合久久 | 欧美日韩成人一区精品高免费专区 | 五月天婷婷在线播放 |