В этой статье описывается метод реализации алгоритма RSA в Java. Поделитесь этим для вашей ссылки, следующим образом:
Одно введение
Единственное широко принятое и реализованное для шифрования данных и цифрового шифрования открытого ключа, расшифровка закрытого ключа закрытого ключа, расшифрование открытого ключа
Два описания параметра RSA
Три реализации
пакет com.imooc.security.rsa; import java.security.keyfactory; импорт java.security.keypair; import java.security.keypairgenerator; импорт java.security.privatekey; import java.security.publickey; import java.security.interfaces.rsaprivatemekey. java.security.interfaces.rsapublickey; import java.security.spec.pkcs8encodedkeyspec; импорт java.security.spec.x509encodkeyspec; import javax.crypto.cipher; импорт org.apache.commons.codec.binary.base.base.base.base.base.base.base.base.base.base.base.base.base. src = "Cakin24 Security RSA"; public static void main (string [] args) {jdkrsa (); } public static void jdkrsa () {try {// 1. Ключ KeyPairgenerator KeyPairgenerator = KeyPairGenerator.getInstance ("RSA"); keypairgenerator.initialize (512); Клавиша клавиши = KeyPairGenerator.GenerateKeyPair (); Rsapublickey rsapublickey = (rsapublickey) keypair.getPublic (); Rsaprivatekey rsaprivatekey = (rsaprivatekey) keypair.getPrivate (); System.out.println ("public Key:" + base64.encodebase64string (rsapublickey.getencoded ())); System.out.println ("Private Key:" + base64.encodebase64string (rsaprivatekey.getencoded ())); // 2. Шифрование частного ключа, расшифровка открытого ключа-Encryption PKCS8EncodkeySpec pkcs8encodeDkeySpec = new Pkcs8encodkeySpec (rsaprivateKey.getencoded ()); KeyFactory KeyFactory = keyFactory.getInstance ("rsa"); PrivateKey PrivateKey = keyFactory.GeneratePrivate (PKCS8encodeDkeySpec); Шифр Cipher = cipher.getInstance ("rsa"); cipher.init (cipher.encrypt_mode, privatekey); byte [] result = cipher.dofinal (src.getbytes ()); System.out.println ("Шифрование личного ключа, публичный ключ расшифровывает-инвертифрование:" + base64.encodebase64String (результат)); // 3. Шифрование закрытого ключа, публичный ключ дешифровал-декрифруционное декрифрование x509encodedkeyspec x509encodedkeyspec = new x509encodkeyspec (rsapublickey.getencoded ()); keyFactory = keyFactory.getInstance ("rsa"); Publickey publickey = keyfactory.generatepublic (x509encodedkeyspec); cipher = cipher.getInstance ("rsa"); cipher.init (cipher.decrypt_mode, publickey); result = cipher.dofinal (result); System.out.println ("Шифрование личного ключа, расшифровка открытого ключа-децифрование:" + new String (result)); // 4. Шифрование открытого ключа, отдельный ключ дешифровал-инвертифрование x509encodedkeyspec = new x509encodkeyspec (rsapublickey.getencoded ()); keyFactory = keyFactory.getInstance ("rsa"); publicKey = keyFactory.GeneratePublic (x509encodeDkeySpec); cipher = cipher.getInstance ("rsa"); cipher.init (cipher.encrypt_mode, publickey); result = cipher.dofinal (src.getbytes ()); System.out.println ("Шифрование открытого ключа, закрытый ключ расшифровывает-инвертифрование:" + base64.encodebase64String (результат)); // 5. Шифрование открытого ключа, закрытый ключ дешифровал-декрифтинг-PKCS8encodeDkeySpec = новый PKCS8encodeDkeySpec (rsaprivatekey.getencoded ()); keyFactory = keyFactory.getInstance ("rsa"); privateKey = keyFactory.GeneratePrivate (PKCS8encodeDkeySpec); cipher = cipher.getInstance ("rsa"); cipher.init (cipher.decrypt_mode, privatekey); result = cipher.dofinal (result); System.out.println ("Шифрование открытого ключа, отдельный ключ расшифровывает-децифрование:" + new String (result)); } catch (Exception e) {e.printstackTrace (); }}}Четыре эффекта реализации
Публичный ключ: mfwwdqyjkozihvcnaqebbqadswawsajbajcbeob97idkkirbmx3moy5e4erwh0uvc2bcnly1rdo0lz8ibr1b1rjxwkhv7u0aso/5dblnnngbqrtsjlscpmcaweaq ==
Частный ключ: Miibvaibadanbgkqhkig9w0baquefaascat4wgge6ageaakealwf45v3sh2ssksgbhcw5jl7h5hchs68lyfw2vjwsojsvnyjthvuxveldaqe/ttqbi7/ kmgweecztbg2wmwwi8widaqabakadskprsl+ew3s2n+cemizxfyyb0xhs1d844qappixkunvwl0a4ovrwsnwt4mejatwvtufnvtxizczdx+q5dbbai Ea9tzzymgru+3mdlax0icf+niqwvlqyvedka4ksxx55gvuciqcdoex6mqgrp78aqjykweogwliszju5fn/lfvkzrcgbjwihamvbbzrzzaykhy0ikw75kd /lksyouty+20bap+midrqgzaia6r36eerkzqubtcl8lxypb5f79htxd5dcvnib/zgp0uwigwtxi7ixhjycsnomsjdu1j3du9kqquw/eohxrk/oguye =
Шифрование личного ключа, расшифрование открытого ключа - Шифрование: VJKFSOIVELVKES5RPRHSJK9TDTZOHDELLS7ILUIDCYEE7DKUCM9SRJ8KWADYNHI40OLAFJHK6447HP7I8X7A ==
Шифрование частного ключа, расшифрование открытого ключа - Дешифрование: Cakin24 Security RSA
Шифрование открытого ключа, отдельный ключ Decryption - Шифрование: Gawl73uxhto+efkkpmfmdhtk0vh7hb8n+30l1hp8aamiagd21h2x/q/ns+sogsoxnovunzasgzenmzzcjb4vea == q/ns+sogsoxnovunzasgzenmzzcjb4vea ==.
Шифрование открытого ключа, дешифрование личного ключа - дешифрование: Cakin24 Security RSA
Пять сценариев приложения
PS: друзья, которые заинтересованы в шифровании и дешифровании, также могут относиться к онлайн -инструментам этого сайта:
Инструменты онлайн -шифрования/дешифрования онлайн:
http://tools.vevb.com/password/rsa_encode
Текст инструментов для шифрования и дешифрования в Интернете (включая AES, DES, RC4 и т. Д.):
http://tools.vevb.com/password/txt_encode
Инструмент онлайн -шифрования MD5:
http://tools.vevb.com/password/createmd5password
Инструмент по шифрованию хэша/хэш -хэш -хэша:
http://tools.vevb.com/password/hash_encrypt
Онлайн MD5/HASH/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160 Инструмент шифрования:
http://tools.vevb.com/password/hash_md5_sha
Онлайн SHA1/SHA224/SHA256/SHA384/SHA512 Инструмент шифрования:
http://tools.vevb.com/password/sha_encode
Для получения дополнительной информации о контенте, связанном с Java, пожалуйста, ознакомьтесь с темами этого сайта: «Сводка навыков математической операции Java», «Учебное пособие по структурам данных и алгоритмам Java», «Сводка символов Java и навыки операции по обращению», «Сводка операции Java Operation Dom Node» и «Сводка операции Java Cache», «Сводка операции Java Dom Node» и «Сютовая операция Java Cache», «Сводка
Я надеюсь, что эта статья будет полезна для всех Java Programming.