java-信息安全(六)-基於RSA理解數字簽名示例

概述

java-信息安全(四)-數據簽名、數字證書html

java-信息安全(五)-非對稱加密算法RSAjava

RSA工具類

使用java-信息安全(五)-非對稱加密算法RSA項目中RSAgit

RSA簽名流程:github

發送方—>構建密鑰對-》公佈密鑰給接收方—>使用私鑰對數據簽名-》發送簽名、數據給接收方。
接收方—》使用公鑰、簽名驗證數據算法

算法分類

 

 

算法 密鑰長度 默認長度 簽名長度 實現的方
MD2withRSA 512-65536
(64的整數倍)
1024 同密鑰 JDK
MD5withRSA 同上 1024 同密鑰 JDK
SHA1withRSA ... 1024 同密鑰 JDK
SHA224withRSA ... 2048 同密鑰 BC
SHA256withRSA ... 2048 同密鑰 BC
SHA384withRSA ... 2048 同密鑰 BC
SHA512withRSA ... 2048 同密鑰 BC
RIPEMD128withRSA   2048 同密鑰 BC
RIPEMD160withRSA 同上 2048 同密鑰 BC

數字簽名理解【銀行與我的信息交互】

        // 如下指示方便理解,並不是真實場景
        // 銀行【公鑰,私鑰】----我的【銀行的公鑰】
        // 1、我的→銀行【RSA公鑰加密// 1.我的發給銀行密碼,使用銀行公鑰進行加密,發給銀行
        // 2.銀行讀取解密後,準備回饋我的信息
        // 2、銀行→我的【銀行數字簽名// 注:因爲我的沒有公鑰,私鑰,銀行也就無法用我的的公鑰進行數據加密,可是爲了確保信息是銀行發的,使用數字簽名
        // 1.銀行將要反饋給我的的數據進行,數字摘要【MD5,sha】等,將數字摘要用私鑰加密,
        // 2.此時,銀行將要發數據與私鑰加密後的sign一塊兒發給用戶
        // 3.用戶收到數據與簽名,用公鑰對簽名進行解密,解密成功,說明信息是銀行發的
        // 4.用戶將數據用與銀行約定好的數字摘要算法,進行數字摘要,對比解密後的簽名與此簽名是否一致,一致即數據完整
        // 補充1,爲了防止,別人僞造銀行,因此須要使用數字證書,對公鑰進行認證,就不會被僞造

示例代碼

 

代碼地址:https://github.com/bjlhx15/algorithm-sign.git安全

相關文章
相關標籤/搜索