国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java 加密之數字簽名算法

2019-11-06 07:11:54
字體:
來源:轉載
供稿:網友

簡介

數字簽名算法是帶有公鑰和私鑰的消息摘要算法,私鑰簽名,公鑰驗證,用來驗證數據完整性,驗證數據來源,抗否認。

數字簽名必須具備 5 個特性: (1)簽名是可信的。 (2)簽名是不可偽造的。 (3)簽名是不可重用的。 (4)簽名的文件是不可改變的。 (5)簽名是不可抵賴的。

流行的有RSA、DSA、ECDSA算法。


RSA算法

包括MD和SHA兩類。其中 md5withRSA 的java實現:

public class MyRSA { PRivate static String str = "guo feng"; public static void main(String[] args) { try { //初始化密鑰 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(512); KeyPair keyPair = keyPairGenerator.generateKeyPair(); RSAPrivateKey rsaPrivateKey = (RSAPrivateKey) keyPair.getPrivate(); RSAPublicKey rsaPublicKey = (RSAPublicKey) keyPair.getPublic(); //私鑰簽名 PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(rsaPrivateKey.getEncoded()); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec); Signature signature = Signature.getInstance("MD5withRSA"); signature.initSign(privateKey); signature.update(str.getBytes()); byte[] result = signature.sign(); System.out.println(new BigInteger(result)); //公鑰驗證 X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(rsaPublicKey.getEncoded()); keyFactory = KeyFactory.getInstance("RSA"); PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec); signature = Signature.getInstance("MD5withRSA"); signature.initVerify(publicKey); signature.update(str.getBytes()); boolean b = signature.verify(result); System.out.println(b); } catch (Exception e) { e.printStackTrace(); } }}

輸出:

2982312259358826061447321482940705327790349142998412535792313942953590618626400322298375288237244307356609052905381328226612007870641624392779916247258746true

場景時序圖:

首先: 這里寫圖片描述 然后: 這里寫圖片描述


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄂尔多斯市| 肇东市| 科技| 兴业县| 阿拉善左旗| 青神县| 天祝| 营口市| 章丘市| 西贡区| 左云县| 新兴县| 巴东县| 神农架林区| 清镇市| 牙克石市| 镇平县| 新巴尔虎右旗| 循化| 石河子市| 博客| 盐源县| 和政县| 慈溪市| 胶南市| 金阳县| 同江市| 浠水县| 奉节县| 台北县| 怀仁县| 天门市| 平江县| 彰化县| 屏东县| 阳东县| 佛学| 恩施市| 广饶县| 蓝田县| 金川县|