日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java dsa加密与解密_Java DSA 加密 | 解密

發布時間:2023/12/20 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java dsa加密与解密_Java DSA 加密 | 解密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java DSA 加密 | 解密

什么是DSA ?

DSA (Digital Signature Algorithm) 是 Schnorr 和 ElGamal 簽名算法的變種,被美國 NIST 作為 DSS (DigitalSignature Standard)。 DSA 是基于整數有限域離散對數難題的。

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

DSA 加密、解密代碼示例

public class DSAUtils {

public static void main(String[] args) throws Exception {

String data = "pangugle";

// 創建秘鑰生成器

KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA");

kpg.initialize(512);

KeyPair keypair = kpg.generateKeyPair();// 生成秘鑰對

DSAPublicKey publickey = (DSAPublicKey) keypair.getPublic();

DSAPrivateKey privatekey = (DSAPrivateKey) keypair.getPrivate();

// 簽名和驗證

// 簽名

Signature sign = Signature.getInstance("SHA1withDSA");

sign.initSign(privatekey);// 初始化私鑰,簽名只能是私鑰

sign.update(data.getBytes());// 更新簽名數據

byte[] b = sign.sign();// 簽名,返回簽名后的字節數組

// 驗證

sign.initVerify(publickey);// 初始化公鑰,驗證只能是公鑰

sign.update(data.getBytes());// 更新驗證的數據

boolean result = sign.verify(b);// 簽名和驗證一致返回true 不一致返回false

System.out.println(result);

}

}

運行結果為

true

總結

以上是生活随笔為你收集整理的java dsa加密与解密_Java DSA 加密 | 解密的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。