<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私鑰加密是一種加密算法,RSA加密注意事項:1、首先產生公鑰與私鑰。2、 設計加密與解密的算法。3、私鑰加密的數據信息只能由公鑰可以解密。4、公鑰加密的數據信息只能由私鑰可以解密。
    推薦度:
    導讀javarsa私鑰加密是一種加密算法,RSA加密注意事項:1、首先產生公鑰與私鑰。2、 設計加密與解密的算法。3、私鑰加密的數據信息只能由公鑰可以解密。4、公鑰加密的數據信息只能由私鑰可以解密。

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

    java rsa私鑰加密是一種加密算法。私鑰加密算法是用私鑰來進行加密與解密信息。私鑰加密也被稱作對稱加密,原因是加密與解密使用的秘鑰是同一個。

    RSA加密需要注意的事項如下:

    1.?首先產生公鑰與私鑰

    2.?設計加密與解密的算法

    3.?私鑰加密的數據信息只能由公鑰可以解密

    4.?公鑰加密的數據信息只能由私鑰可以解密

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

    public?class?RsaCryptTools?{
    ????private?static?final?String?CHARSET?=?"utf-8";
    ????private?static?final?Base64.Decoder?decoder64?=?Base64.getDecoder();
    ????private?static?final?Base64.Encoder?encoder64?=?Base64.getEncoder();
    ?
    ????/**
    ?????*?生成公私鑰
    ?????*?@param?keySize
    ?????*?@return
    ?????*?@throws?NoSuchAlgorithmException
    ?????*/
    ????public?static?SecretKey?generateSecretKey(int?keySize)?throws?NoSuchAlgorithmException?{
    ????????//生成密鑰對
    ????????KeyPairGenerator?keyGen?=?KeyPairGenerator.getInstance("RSA");
    ????????keyGen.initialize(keySize,?new?SecureRandom());
    ????????KeyPair?pair?=?keyGen.generateKeyPair();
    ????????PrivateKey?privateKey?=?pair.getPrivate();
    ????????PublicKey?publicKey?=?pair.getPublic();
    ????????//這里可以將密鑰對保存到本地
    ????????return?new?SecretKey(encoder64.encodeToString(publicKey.getEncoded()),?encoder64.encodeToString(privateKey.getEncoded()));
    ????}
    ????/**
    ?????*?私鑰加密
    ?????*?@param?data
    ?????*?@param?privateInfoStr
    ?????*?@return
    ?????*?@throws?IOException
    ?????*?@throws?InvalidCipherTextException
    ?????*/
    ????public?static?String?encryptData(String?data,?String?privateInfoStr)?throws?IOException,?InvalidKeySpecException,?NoSuchAlgorithmException,?InvalidKeyException,?NoSuchPaddingException,?BadPaddingException,?IllegalBlockSizeException?{
    ?
    ????????Cipher?cipher?=?Cipher.getInstance("RSA/ECB/PKCS1Padding");
    ????????cipher.init(Cipher.ENCRYPT_MODE,?getPrivateKey(privateInfoStr));
    ????????return?encoder64.encodeToString(cipher.doFinal(data.getBytes(CHARSET)));
    ????}
    ?
    ????/**
    ?????*?公鑰解密
    ?????*?@param?data
    ?????*?@param?publicInfoStr
    ?????*?@return
    ?????*/
    ????public?static?String?decryptData(String?data,?String?publicInfoStr)?throws?NoSuchPaddingException,?NoSuchAlgorithmException,?InvalidKeySpecException,?InvalidKeyException,?BadPaddingException,?IllegalBlockSizeException,?UnsupportedEncodingException?{
    ????????byte[]?encryptDataBytes=decoder64.decode(data.getBytes(CHARSET));
    ????????//解密
    ????????Cipher?cipher?=?Cipher.getInstance("RSA/ECB/PKCS1Padding");
    ????????cipher.init(Cipher.DECRYPT_MODE,?getPublicKey(publicInfoStr));
    ????????return?new?String(cipher.doFinal(encryptDataBytes),?CHARSET);
    ????}
    ????private?static?PublicKey?getPublicKey(String?base64PublicKey)?throws?NoSuchAlgorithmException,?InvalidKeySpecException?{
    ????????X509EncodedKeySpec?keySpec?=?new?X509EncodedKeySpec(Base64.getDecoder().decode(base64PublicKey.getBytes()));
    ????????KeyFactory?keyFactory?=?KeyFactory.getInstance("RSA");
    ????????return?keyFactory.generatePublic(keySpec);
    ????}
    ????private?static?PrivateKey?getPrivateKey(String?base64PrivateKey)?throws?NoSuchAlgorithmException,?InvalidKeySpecException?{
    ????????PrivateKey?privateKey?=?null;
    ????????PKCS8EncodedKeySpec?keySpec?=?new?PKCS8EncodedKeySpec(Base64.getDecoder().decode(base64PrivateKey.getBytes()));
    ????????KeyFactory?keyFactory?=?null;
    ????????keyFactory?=?KeyFactory.getInstance("RSA");
    ????????privateKey?=?keyFactory.generatePrivate(keySpec);
    ????????return?privateKey;
    ????}
    ?
    ????/**
    ?????*?密鑰實體
    ?????*?@author?hank
    ?????*?@since?2020/2/28?0028?下午?16:27
    ?????*/
    ????public?static?class?SecretKey?{
    ????????/**
    ?????????*?公鑰
    ?????????*/
    ????????private?String?publicKey;
    ????????/**
    ?????????*?私鑰
    ?????????*/
    ????????private?String?privateKey;
    ?
    ????????public?SecretKey(String?publicKey,?String?privateKey)?{
    ????????????this.publicKey?=?publicKey;
    ????????????this.privateKey?=?privateKey;
    ????????}
    ?
    ????????public?String?getPublicKey()?{
    ????????????return?publicKey;
    ????????}
    ?
    ????????public?void?setPublicKey(String?publicKey)?{
    ????????????this.publicKey?=?publicKey;
    ????????}
    ?
    ????????public?String?getPrivateKey()?{
    ????????????return?privateKey;
    ????????}
    ?
    ????????public?void?setPrivateKey(String?privateKey)?{
    ????????????this.privateKey?=?privateKey;
    ????????}
    ?
    ????????@Override
    ????????public?String?toString()?{
    ????????????return?"SecretKey{"?+
    ????????????????????"publicKey='"?+?publicKey?+?'\''?+
    ????????????????????",?privateKey='"?+?privateKey?+?'\''?+
    ????????????????????'}';
    ????????}
    ????}
    ?
    ????private?static?void?writeToFile(String?path,?byte[]?key)?throws?IOException?{
    ????????File?f?=?new?File(path);
    ????????f.getParentFile().mkdirs();
    ?
    ????????try(FileOutputStream?fos?=?new?FileOutputStream(f))?{
    ????????????fos.write(key);
    ????????????fos.flush();
    ????????}
    ????}
    ?
    ????public?static?void?main(String[]?args)?throws?NoSuchAlgorithmException,?NoSuchPaddingException,?IOException,?BadPaddingException,?IllegalBlockSizeException,?InvalidKeyException,?InvalidKeySpecException?{
    ????????SecretKey?secretKey?=?generateSecretKey(2048);
    ????????System.out.println(secretKey);
    ????????String?enStr?=?encryptData("你好測試測試",?secretKey.getPrivateKey());
    ????????System.out.println(enStr);
    ????????String?deStr?=?decryptData(enStr,?secretKey.getPublicKey());
    ????????System.out.println(deStr);
    ????????enStr?=?encryptData("你好測試測試hello",?secretKey.getPrivateKey());
    ????????System.out.println(enStr);
    ????????deStr?=?decryptData(enStr,?secretKey.getPublicKey());
    ????????System.out.println(deStr);
    ????}
    ?
    }

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

    文檔

    java rsa私鑰加密

    javarsa私鑰加密是一種加密算法,RSA加密注意事項:1、首先產生公鑰與私鑰。2、 設計加密與解密的算法。3、私鑰加密的數據信息只能由公鑰可以解密。4、公鑰加密的數據信息只能由私鑰可以解密。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    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 plugin java rsa公鑰加密 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
    Top 国内一级特黄女人精品毛片| 亚洲AV无码成人精品区蜜桃| 精品久久亚洲中文无码| 国产精品人人做人人爽| 精品欧美一区二区在线观看| 久久一区二区精品| 久久精品国产99久久丝袜| 日本精品无码一区二区三区久久久 | 91freevideos精品| 囯产精品一品二区三区| 国产在线高清精品二区色五郎| 亚洲狠狠ady亚洲精品大秀| 国产麻豆剧传媒精品国产AV| 久久久久99精品成人片试看 | 国产精品福利一区二区久久| 久久99精品综合国产首页| 亚洲午夜精品第一区二区8050| 亚洲精品理论电影在线观看| 久久这里只有精品18| 一色屋精品视频在线观看| jazzjazz国产精品| 色妞WWW精品免费视频| 国产私拍福利精品视频网站| 久久99精品久久久久久久野外| 精品人妻少妇一区二区三区| 国产精品国产色综合色| 久久婷婷五月综合色精品| 2020国产精品视频| 久久精品国产99久久| 国产乱人伦偷精品视频AAA| 久久se这里只有精品| 四虎国产精品免费久久影院| 野花国产精品入口| 精品无码久久久久久国产| 国产精品一区二区久久| 亚洲精品午夜久久久伊人| 人妻熟妇乱又伦精品视频| 久久精品中文字幕免费| 久久精品国产秦先生| 99精品久久精品| 国内精品国语自产拍在线观看 |