/** * 引進的包都是Java自帶的jar包 * 秘鑰相關包 * 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中的公鑰對象 轉為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中的私鑰對象 轉為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(); } }
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas
Panduan Membina Rumput Wonder | Uma Musume Pretty Derby
4 minggu yang lalu
By Jack chen
<??>: 99 Malam di Hutan - Semua Lencana Dan Cara Membuka Kunci Mereka
4 minggu yang lalu
By DDD
Jadual Banner Pretty Derby Uma Musume (Julai 2025)
1 bulan yang lalu
By Jack chen
Panduan Suhu Rimworld Odyssey untuk Kapal dan Gravtech
3 minggu yang lalu
By Jack chen
Keselamatan Windows kosong atau tidak menunjukkan pilihan
1 bulan yang lalu
By 下次還敢

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)