DSA(Digital Signature Algorithm)是 Schnorr 和 ElGamal 簽名算法變種,被 NIST 定為 DSS 標準。區別於純加密,DSA 引入數字簽名:私鑰簽名、公鑰驗證,校驗數據傳輸完整性。若數據與簽名不匹配則驗證失敗。數字簽名是單向加密的升級。
繼承 Coder,ALGORITHM = "DSA",默認密鑰長度 1024 位(512-1024,64 位倍數)。核心方法:
sign(byte[] data, String privateKey):私鑰生成數字簽名(Signature.initSign(priKey))verify(byte[] data, String publicKey, String sign):公鑰驗證簽名(Signature.initVerify(pubKey))initKey(seed):KeyPairGenerator + SecureRandom 生成密鑰對getPrivateKey/getPublicKey:BASE64 編碼輸出DSACoderTest:構建密鑰、輸出公私鑰、簽名「abc」→ 驗證簽名 → 狀態 true。控制台輸出 1024 位 DSA 公私鑰 BASE64 及簽名值,驗證成功。