/** * 引進的包都是Java自帶的jar包 * 秘鑰相關(guān)包 * base64 編解碼 * 這里只用到了編碼 */ import java.security.Key; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.util.HashMap; import java.util.Map; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class CreateSecrteKey { public class Keys { } public static final String KEY_ALGORITHM = "RSA"; //public static final String SIGNATURE_ALGORITHM = "MD5withRSA"; private static final String PUBLIC_KEY = "RSAPublicKey"; private static final String PRIVATE_KEY = "RSAPrivateKey"; //獲得公鑰 public static String getPublicKey(Map<String, Object> keyMap) throws Exception { //獲得map中的公鑰對象 轉(zhuǎn)為key對象 Key key = (Key) keyMap.get(PUBLIC_KEY); //byte[] publicKey = key.getEncoded(); //編碼返回字符串 return encryptBASE64(key.getEncoded()); } //獲得私鑰 public static String getPrivateKey(Map<String, Object> keyMap) throws Exception { //獲得map中的私鑰對象 轉(zhuǎn)為key對象 Key key = (Key) keyMap.get(PRIVATE_KEY); //byte[] privateKey = key.getEncoded(); //編碼返回字符串 return encryptBASE64(key.getEncoded()); } //解碼返回byte public static byte[] decryptBASE64(String key) throws Exception { return (new BASE64Decoder()).decodeBuffer(key); } //編碼返回字符串 public static String encryptBASE64(byte[] key) throws Exception { return (new BASE64Encoder()).encodeBuffer(key); } //map對象中存放公私鑰 public static Map<String, Object> initKey() throws Exception { //獲得對象 KeyPairGenerator 參數(shù) RSA 1024個字節(jié) KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance(KEY_ALGORITHM); keyPairGen.initialize(1024); //通過對象 KeyPairGenerator 獲取對象KeyPair KeyPair keyPair = keyPairGen.generateKeyPair(); //通過對象 KeyPair 獲取RSA公私鑰對象RSAPublicKey RSAPrivateKey RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); //公私鑰對象存入map中 Map<String, Object> keyMap = new HashMap<String, Object>(2); keyMap.put(PUBLIC_KEY, publicKey); keyMap.put(PRIVATE_KEY, privateKey); return keyMap; } public static void main(String[] args) { Map<String, Object> keyMap; try { keyMap = initKey(); String publicKey = getPublicKey(keyMap); System.out.println(publicKey); String privateKey = getPrivateKey(keyMap); System.out.println(privateKey); } catch (Exception e) { e.printStackTrace(); } }
本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章
Grass Wonder Build Guide |烏瑪媽媽漂亮的德比
3 周前
By Jack chen
<??>:在森林里99夜 - 所有徽章以及如何解鎖
3 周前
By DDD
烏瑪?shù)姆劢z漂亮的德比橫幅日程(2025年7月)
4 周前
By Jack chen
今天的連接提示并回答753年7月3日
1 個月前
By Jack chen
Windows安全是空白或不顯示選項
4 周前
By 下次還敢

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)