<sup id="m40ya"></sup>
  • 
    
  • <kbd id="m40ya"></kbd>
    <samp id="m40ya"></samp>
    <ul id="m40ya"></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 久久精品人人做人人爽电影蜜月 | 国产乱人伦真实精品视频| 久久96精品国产| 国产精品男男视频一区二区三区| 亚洲精品乱码久久久久久久久久久久 | 国产一区二区精品久久岳√| 久久国语露脸国产精品电影| 精品亚洲综合久久中文字幕| 亚洲精品女同中文字幕| 午夜精品视频在线| 久久国产精品波多野结衣AV| 国产精品国产三级国产普通话一 | 日韩国产精品99久久久久久| 久久精品国产乱子伦| 亚洲精品免费视频| 亚洲精品午夜无码专区| 国产精品无码久久久久| 激情啪啪精品一区二区| 午夜精品福利在线观看| 亚洲AV无码精品国产成人| 国产精品福利一区二区| 国产亚洲午夜精品| 亚洲熟女精品中文字幕| 2020国产精品| 日本精品不卡视频| 国语自产精品视频在线观看| 精品国产一区二区三区香蕉事 | 99精品福利国产在线导航| 8x福利精品第一导航| 精品人妻人人做人人爽夜夜爽 | 亚洲国产高清在线精品一区| 国产精品亚洲高清一区二区| 国产农村妇女精品一二区| 国产精品青草久久| 热99re久久精品2久久久| 牛牛本精品99久久精品| 国内一级特黄女人精品毛片| 精品久久久久久无码中文野结衣 | 日韩美女18网站久久精品| 国产精品色午夜视频免费看| 国产视频精品久久|