java-信息安全(十)-簽名002-數字簽名算法DSA


一、概述

  DSA算法(Digital Signature Algorithm,數據簽名算法)

  Digital Signature Algorithm (DSA)是Schnorr和ElGamal簽名算法的變種,被美國NIST作為DSfS(DigitalSignature Standard)。

  DSA(Data Signature Algorithm)數字簽名算法:DSA僅包含數字簽名,不包含加解密

  簡單的說,這是一種更高級的驗證方式,用作數字簽名。不單單只有公鑰、私鑰,還有數字簽名。私鑰加密生成數字簽名,公鑰驗證數據及簽名。如果數據和簽名不匹配則認為驗證失敗!數字簽名的作用就是校驗數據在傳輸過程中不被修改。數字簽名,是單向加密的升級!

1.1、算法分類

算法 密鑰長度 默認長度 簽名長度 實現的方
SHA1withDSA 512-65536
(64的整數倍)
1024 同密鑰 JDK8
SHA224withDSA 同上 1024 同密鑰 JDK8
SHA256withDSA ... 1024 同密鑰 JDK8
SHA384withDSA ... 1024 同密鑰 BC
SHA512withDSA ... 1024 同密鑰 BC

jdk支持

        list.add(JdkDsa.DSA);//==SHA1withDSA
        list.add(JdkDsa.SHA1withDSA);
        list.add(JdkDsa.SHA224withDSA);
        list.add(JdkDsa.SHA256withDSA);

1.2、簽名示例

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

DSA算法 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM