<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 国产成人精品曰本亚洲79ren| 精品国产免费人成电影在线观看| 国产精品无码一区二区在线观| 国精无码欧精品亚洲一区| 小呦精品导航网站| 精品无码人妻一区二区三区| 精品无码人妻一区二区三区不卡| 久热爱精品视频在线| 99国产精品免费观看视频| 久久精品99国产精品日本| 无码人妻一区二区三区精品视频 | 色妞ww精品视频7777| 亚洲第一区精品观看| 精品亚洲av无码一区二区柚蜜| 99精品视频免费在线观看| 99久久国产精品免费一区二区| 国产精品久久久久999| 国内揄拍国内精品对白86| 无码国产精品一区二区免费模式| 在线精品国产一区二区三区| 青草国产精品视频。| 大伊香蕉在线精品不卡视频| 国产精品视频a播放| 99re热这里只有精品18| 久久精品午夜福利| 国内精品久久人妻互换| 国产日韩高清三级精品人成| 国产精品永久在线观看| 久久96国产精品| 91精品国产自产在线观看永久| 老司机午夜精品视频播放| 99精品国产成人a∨免费看| 国精品无码一区二区三区在线蜜臀| 亚洲国产小视频精品久久久三级| 女同久久另类99精品国产| 午夜精品久久久久久久99蜜桃| 91精品久久久久久无码| 亚洲精品白浆高清久久久久久 | 国产高清国内精品福利| 亚洲国产精品专区| 亚洲午夜精品一区二区公牛电影院 |