<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 更多精彩內容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    java rsa公鑰加密

    文檔

    java rsa公鑰加密

    javarsa公鑰加密是一種加密技術。一般采用的公鑰加密算法有:1、RSA加密算法:以數論的歐拉定理為基礎,是第一個兼有安全性與實用性的公鑰加密算法,已經變成國際標準。2、 ELGAMAL加密算法:在有限域上離散對數的基礎上的公鑰加密體制,它的作用是加密,也有數字簽名的功能。
    推薦度:
    導讀javarsa公鑰加密是一種加密技術。一般采用的公鑰加密算法有:1、RSA加密算法:以數論的歐拉定理為基礎,是第一個兼有安全性與實用性的公鑰加密算法,已經變成國際標準。2、 ELGAMAL加密算法:在有限域上離散對數的基礎上的公鑰加密體制,它的作用是加密,也有數字簽名的功能。

    ? ?

    java rsa公鑰加密是什么?讓我們一起來了解一下吧!

    java rsa公鑰加密是一種加密技術。秘鑰是指數字或者字符串,在加/解密的時候傳遞加/解密算法。公鑰的密碼體制有三個內容,分別是公鑰、私鑰與加/解密算法。

    一般我們采用的公鑰加密算法有以下幾種:

    1.?RSA加密算法:以數論的歐拉定理為基礎,是第一個兼有安全性與實用性的公鑰加密算法,已經變成了國際標準。

    2.?ELGAMAL加密算法:在有限域上離散對數的基礎上的公鑰加密體制,它的作用是加密,也有數字簽名的功能。

    實戰演練,具體步驟如下:

    public?class?KeyGenerater?{undefined
    ?
    private?byte[]?priKey;
    ?
    private?byte[]?pubKey;
    ?
    public?void?generater()?{undefined
    ?
    try?{undefined
    ?
    java.security.KeyPairGenerator?keygen?=?java.security.KeyPairGenerator
    ?
    .getInstance("RSA");
    ?
    SecureRandom?secrand?=?new?SecureRandom();
    ?
    secrand.setSeed("syj".getBytes());?//?初始化隨機產生器
    ?
    keygen.initialize(1024,?secrand);
    ?
    KeyPair?keys?=?keygen.genKeyPair();
    ?
    PublicKey?pubkey?=?keys.getPublic();
    ?
    PrivateKey?prikey?=?keys.getPrivate();
    ?
    pubKey?=?Base64.encodeToByte(pubkey.getEncoded());
    ?
    priKey?=?Base64.encodeToByte(prikey.getEncoded());
    ?
    System.out.println("pubKey?=?"?+?new?String(pubKey));
    ?
    System.out.println("priKey?=?"?+?new?String(priKey));
    ?
    }?catch?(java.lang.Exception?e)?{undefined
    ?
    System.out.println("生成密鑰對失敗");
    ?
    e.printStackTrace();
    ?
    }
    ?
    }
    ?
    public?byte[]?getPriKey()?{undefined
    ?
    return?priKey;
    ?
    }
    ?
    public?byte[]?getPubKey()?{undefined
    ?
    return?pubKey;
    ?
    }
    ?
    }
    ?
    public?class?Signaturer?{undefined
    ?
    /**
    ?
    *
    ?
    *?Description:數字簽名
    ?
    *
    ?
    */
    ?
    public?static?byte[]?sign(byte[]?priKeyText,?String?plainText)?{undefined
    ?
    try?{undefined
    ?
    PKCS8EncodedKeySpec?priPKCS8?=?new?PKCS8EncodedKeySpec(Base64
    ?
    .decode(priKeyText));
    ?
    KeyFactory?keyf?=?KeyFactory.getInstance("RSA");
    ?
    PrivateKey?prikey?=?keyf.generatePrivate(priPKCS8);
    ?
    //?用私鑰對信息生成數字簽名
    ?
    java.security.Signature?signet?=?java.security.Signature
    ?
    .getInstance("MD5withRSA");
    ?
    signet.initSign(prikey);
    ?
    signet.update(plainText.getBytes());
    ?
    byte[]?signed?=?Base64.encodeToByte(signet.sign());
    ?
    return?signed;
    ?
    }?catch?(java.lang.Exception?e)?{undefined
    ?
    System.out.println("簽名失敗");
    ?
    e.printStackTrace();
    ?
    }
    ?
    return?null;
    ?
    }
    ?
    }
    ?
    public?class?SignProvider?{undefined
    ?
    private?SignProvider()?{undefined
    ?
    }
    ?
    /**
    ?
    *
    ?
    *?Description:校驗數字簽名,此方法不會拋出任務異常,成功返回true,失敗返回false,要求全部參數不能為空
    ?
    *
    ?
    *?@param?pubKeyText
    ?
    *????????????公鑰,base64編碼
    ?
    *?@param?plainText
    ?
    *????????????明文
    ?
    *?@param?signTest
    ?
    *????????????數字簽名的密文,base64編碼
    ?
    *?@return?校驗成功返回true?失敗返回false
    ?
    */
    ?
    public?static?boolean?verify(byte[]?pubKeyText,?String?plainText,
    ?
    byte[]?signText)?{undefined
    ?
    try?{undefined
    ?
    //?解密由base64編碼的公鑰,并構造X509EncodedKeySpec對象
    ?
    java.security.spec.X509EncodedKeySpec?bobPubKeySpec?=?new?java.security.spec.X509EncodedKeySpec(
    ?
    Base64.decode(pubKeyText));
    ?
    //?RSA對稱加密算法
    ?
    java.security.KeyFactory?keyFactory?=?java.security.KeyFactory
    ?
    .getInstance("RSA");
    ?
    //?取公鑰匙對象
    ?
    java.security.PublicKey?pubKey?=?keyFactory
    ?
    .generatePublic(bobPubKeySpec);
    ?
    //?解密由base64編碼的數字簽名
    ?
    byte[]?signed?=?Base64.decode(signText);
    ?
    java.security.Signature?signatureChecker?=?java.security.Signature
    ?
    .getInstance("MD5withRSA");
    ?
    signatureChecker.initVerify(pubKey);
    ?
    signatureChecker.update(plainText.getBytes());
    ?
    //?驗證簽名是否正常
    ?
    if?(signatureChecker.verify(signed))
    ?
    return?true;
    ?
    else
    ?
    return?false;
    ?
    }?catch?(Throwable?e)?{undefined
    ?
    System.out.println("校驗簽名失敗");
    ?
    e.printStackTrace();
    ?
    return?false;
    ?
    }
    ?
    }
    ?
    }

    以上就是小編今天的分享了,希望可以幫助到大家。

    文檔

    java rsa公鑰加密

    javarsa公鑰加密是一種加密技術。一般采用的公鑰加密算法有:1、RSA加密算法:以數論的歐拉定理為基礎,是第一個兼有安全性與實用性的公鑰加密算法,已經變成國際標準。2、 ELGAMAL加密算法:在有限域上離散對數的基礎上的公鑰加密體制,它的作用是加密,也有數字簽名的功能。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    java rsa私鑰加密 java rtp java runnable java runtime.exec java rxjava java sandbox java script java selector java selenium java semaphore java separator java sequence java serializable java serializable接口 java serialversionuid java setlayout java platform java settimeout java plug-in java sftp java pipeline java ping java phoenix java paypal java path java rsa加密 java rotate java reverse java reverse() java retrofit java resume java resultset java result java rest java requests java partial java request java parser java repeat java parse
    Top 国产精品视频永久免费播放| 亚洲国产精品SSS在线观看AV| 亚洲国产精品久久久久网站 | 日本精品久久久久久福利| 精品久久一区二区三区| 国产精品国产三级国产专播下| 熟妇人妻VA精品中文字幕| 国产成人综合精品一区| 国产精品视频一区国模私拍| 久久精品国产亚洲av麻豆色欲| 国产精品婷婷午夜在线观看| 亚洲中文精品久久久久久不卡| 久久九九AV免费精品| 国产精品美女WWW爽爽爽视频| 国内精品视频一区二区八戒 | 久久夜色精品国产网站| 国产精品视频全国免费观看| 天天综合亚洲色在线精品| 久久精品国产2020| 久久99久久精品视频| 宅男在线国产精品无码| 亚洲国产精品狼友中文久久久| 国产精品无码一区二区三区不卡| 久久精品人人做人人爽97| 精品日产一区二区三区手机| 国产色精品vr一区区三区| 国产精品成人扳**a毛片| 欧美交A欧美精品喷水| 亚洲精品中文字幕乱码影院| 久久精品中文字幕第一页| 在线涩涩免费观看国产精品| 国产成人精品综合久久久| 国产女人乱人伦精品一区二区| 国产综合色香蕉精品五月婷| 中文字幕亚洲综合精品一区| 国产精品高清一区二区三区| a级亚洲片精品久久久久久久| freesexvideos精品老师毛多| 精品人妻人人做人人爽夜夜爽| 国产精品美女视视频专区| 少妇AV射精精品蜜桃专区|