-
大小: 45KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-05-28
- 語(yǔ)言: Java
- 標(biāo)簽: rsa非對(duì)稱??
資源簡(jiǎn)介
java rsa非對(duì)稱加密算法3個(gè)實(shí)例源代碼

代碼片段和文件信息
package?com.zl.test1;
import?java.math.BigInteger;??
import?java.security.KeyFactory;??
import?java.security.KeyPair;??
import?java.security.KeyPairGenerator;??
import?java.security.NoSuchAlgorithmException;??
import?java.security.interfaces.RSAPrivateKey;??
import?java.security.interfaces.RSAPublicKey;??
import?java.security.spec.RSAPrivateKeySpec;??
import?java.security.spec.RSAPublicKeySpec;??
import?java.util.HashMap;??
??
import?javax.crypto.Cipher;??
??
public?class?RSAUtils?{??
??
????/**?
?????*?生成公鑰和私鑰?
?????*?@throws?NoSuchAlgorithmException??
?????*?
?????*/??
????public?static?HashMapject>?getKeys()?throws?NoSuchAlgorithmException{??
????????HashMapject>?map?=?new?HashMapject>();??
????????KeyPairGenerator?keyPairGen?=?KeyPairGenerator.getInstance(“RSA“);??
????????keyPairGen.initialize(1024);??
????????KeyPair?keyPair?=?keyPairGen.generateKeyPair();??
????????RSAPublicKey?publicKey?=?(RSAPublicKey)?keyPair.getPublic();??
????????RSAPrivateKey?privateKey?=?(RSAPrivateKey)?keyPair.getPrivate();??
????????map.put(“public“?publicKey);??
????????map.put(“private“?privateKey);??
????????return?map;??
????}??
????/**?
?????*?使用模和指數(shù)生成RSA公鑰?
?????*?注意:【此代碼用了默認(rèn)補(bǔ)位方式,為RSA/None/PKCS1Padding,不同JDK默認(rèn)的補(bǔ)位方式可能不同,如Android默認(rèn)是RSA?
?????*?/None/NoPadding】?
?????*??
?????*?@param?modulus?
?????*????????????模?
?????*?@param?exponent?
?????*????????????指數(shù)?
?????*?@return?
?????*/??
????public?static?RSAPublicKey?getPublicKey(String?modulus?String?exponent)?{??
????????try?{??
????????????BigInteger?b1?=?new?BigInteger(modulus);??
????????????BigInteger?b2?=?new?BigInteger(exponent);??
????????????KeyFactory?keyFactory?=?KeyFactory.getInstance(“RSA“);??
????????????RSAPublicKeySpec?keySpec?=?new?RSAPublicKeySpec(b1?b2);??
????????????return?(RSAPublicKey)?keyFactory.generatePublic(keySpec);??
????????}?catch?(Exception?e)?{??
????????????e.printStackTrace();??
????????????return?null;??
????????}??
????}??
??
????/**?
?????*?使用模和指數(shù)生成RSA私鑰?
?????*?注意:【此代碼用了默認(rèn)補(bǔ)位方式,為RSA/None/PKCS1Padding,不同JDK默認(rèn)的補(bǔ)位方式可能不同,如Android默認(rèn)是RSA?
?????*?/None/NoPadding】?
?????*??
?????*?@param?modulus?
?????*????????????模?
?????*?@param?exponent?
?????*????????????指數(shù)?
?????*?@return?
?????*/??
????public?static?RSAPrivateKey?getPrivateKey(String?modulus?String?exponent)?{??
????????try?{??
????????????BigInteger?b1?=?new?BigInteger(modulus);??
????????????BigInteger?b2?=?new?BigInteger(exponent);??
????????????KeyFactory?keyFactory?=?KeyFactory.getInstance(“RSA“);??
????????????RSAPrivateKeySpec?keySpec?=?new?RSAPrivateKeySpec(b1?b2);??
????????????return?(RSAPrivateKey)?keyFactory.generatePrivate(keySpec);??
????????}?catch?(Exception?e)?{??
????????????e.printStackTrace();??
????????????return?null;??
????????}??
????}??
??
????/**?
?????*?公鑰加密?
?????*??
?????*?@param?data?
?????*?@param?publicKey?
?????*?@return?
?????*?@throws?Exception?
?????*/??
????public
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-03-07?16:54??Security\
?????文件?????????364??2017-03-09?16:18??Security\.classpath
?????目錄???????????0??2017-03-07?15:39??Security\.myeclipse\
?????目錄???????????0??2017-03-07?15:39??Security\.myeclipse\profiler\
?????文件????????1266??2017-03-07?15:39??Security\.myeclipse\profiler\TestMain.xm
?????文件?????????384??2017-03-07?15:30??Security\.project
?????目錄???????????0??2017-03-07?15:30??Security\.settings\
?????文件?????????598??2017-03-07?15:30??Security\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2017-03-09?16:18??Security\bin\
?????目錄???????????0??2017-03-09?16:18??Security\bin\com\
?????目錄???????????0??2017-03-09?16:18??Security\bin\com\zl\
?????目錄???????????0??2017-03-09?16:18??Security\bin\com\zl\test1\
?????文件????????6525??2017-03-09?16:18??Security\bin\com\zl\test1\RSAUtils.class
?????文件????????2282??2017-03-09?16:18??Security\bin\com\zl\test1\TestMain.class
?????目錄???????????0??2017-03-09?16:18??Security\bin\com\zl\test2\
?????文件????????2576??2017-03-09?16:18??Security\bin\com\zl\test2\ba
?????文件????????5086??2017-03-09?16:18??Security\bin\com\zl\test2\RSATester.class
?????文件????????6733??2017-03-09?16:18??Security\bin\com\zl\test2\RSAUtils.class
?????目錄???????????0??2017-03-09?16:18??Security\bin\com\zl\test3\
?????文件????????4458??2017-03-09?16:18??Security\bin\com\zl\test3\ba
?????文件????????2418??2017-03-10?21:14??Security\bin\com\zl\test3\MainTest.class
?????文件????????9002??2017-03-09?16:18??Security\bin\com\zl\test3\RSAEncrypt.class
?????文件????????2958??2017-03-09?16:18??Security\bin\com\zl\test3\RSASignature.class
?????目錄???????????0??2017-03-09?16:18??Security\bin\com\zl\uuid\
?????文件????????1120??2017-03-09?16:18??Security\bin\com\zl\uuid\Uuid.class
?????目錄???????????0??2017-03-07?17:13??Security\doc\
?????文件?????????874??2017-03-07?17:13??Security\doc\privateKey.keystore
?????文件?????????222??2017-03-07?17:13??Security\doc\publicKey.keystore
?????目錄???????????0??2017-03-09?16:18??Security\lib\
?????文件????????4364??2017-03-07?15:56??Security\lib\javaba
?????目錄???????????0??2017-03-09?16:16??Security\src\
............此處省略16個(gè)文件信息
評(píng)論
共有 條評(píng)論