傳送端處理:製作數位簽名 (Signature Generation Process)
這是 Mary 準備寄給 James 的原始文件內容。
將明文輸入 SHA-256 演算法,產生不可逆且長度固定的資料指紋。原文被改動一個字,雜湊值全變。
Mary 用自己妥善保管的私鑰 (Private Key) 對該雜湊值加密,此密文即為「數位簽名」。
接收端處理:驗證簽名 (Verification Process)
James 使用公眾可取得的 Mary 公鑰 (Public Key) 解開數位簽名,可還原出 Mary 當初計算的【原始雜湊值 A】。
James 將收到的「原始合約明文」以相同的 SHA-256 演算法重新計算,獲得【當前雜湊值 B】。
兩雜湊值相符代表兩重重大意義:
1. 不可否認性 (Non-repudiation):此簽名只能由持有 Mary 私鑰的本人產出,公鑰解密成功即證明身分。
2. 完整性 (Data Integrity):文件在傳輸過程未被修改任何一個字元。
動態數位簽名計算與篡改測試
本功能使用瀏覽器原生 Web Crypto API 即時進行 SHA-256 雜湊與非對稱密鑰模擬。