Dieser Artikel beschreibt die Methode zur Implementierung des RSA -Algorithmus in Java. Teilen Sie es für Ihre Referenz wie folgt weiter:
Eine Einführung
Die einzige weithin anerkannte und implementierte Datenverschlüsselung und digitale Signatur öffentliche Schlüsselverschlüsselung, private Schlüsselentschlüsselung privates Schlüsselverschlüsselung, öffentliche Schlüsselentschlüsselung
Zwei RSA -Parameterbeschreibung
Drei Erkenntnisse
Paket com.imooc.security.rsa; Import Java.security.KeyFactory; Import Java.Security.Keypair; java.security.interfaces.rsapublickey; import Java.security.spec.pkcs8EncodedKeyspec; Import Java.Security.spec.x509Enencodedkespec; Javax.crypto.cipher; statische String src = "Cakin24 Security RSA"; public static void main (String [] args) {jdkrsa (); } public static void jdkrsa () {try {// 1. Initialisierungsschlüssel Keypairgenerator Keypairgenerator = Keypairgenerator.getInstance ("RSA"); tastypairgenerator.initialize (512); Tastatur Tastatur = Keypairgenerator.generateKeypair (); Rsapublickey rsapublickey = (rsapublickey) keypair.getPublic (); RsaprivateKey rsaprivateKey = (rsaprivateKey) keypair.getPrivate (); System.out.println ("public key:" + base64.Encodebase64String (rsapublickey.getEcoded ())); System.out.println ("Privatschlüssel:" + Base64.EncodoDebase64String (rsaprivateKey.getEcoded ())); // 2. Private Schlüsselverschlüsselung, öffentliche Schlüsselentschlüsselung-Decryption PKCS8EncodedKeySpec PKCS8EncodedKeySpec = NEU PKCS8EncodedKeySpec (rsaprivateKey.getEncoded ()); KeyFactory keyFactory = keyFactory.getInstance ("RSA"); Privatekey privateKey = keyFactory.generatePrivate (PKCS8EncodedKeySpec); Cipher cipher = cipher.getInstance ("rsa"); cipher.init (cipher.encrypt_mode, privateKey); byte [] result = cipher.dofinal (src.getBytes ()); System.out.println ("private Schlüsselverschlüsselung, öffentliche Schlüsselentschlüsselungsverschlüsselung:" + Base64.Encodebase64String (Ergebnis)); // 3. Private Schlüsselverschlüsselung, öffentliche Schlüssel-Dekorption-Dekorption x509EncodedKeyspec x509CodedKeyspec = neuer x509EncodedKeySpec (rsapublickey.getEcoded ()); KeyFactory = KeyFactory.getInstance ("RSA"); PublicKey publicKey = keyFactory.generatePublic (x509CodedKeyspec); cipher = cipher.getInstance ("RSA"); cipher.init (cipher.decrypt_mode, PublicKey); result = cipher.dofinal (Ergebnis); System.out.println ("private Schlüsselverschlüsselung, öffentliche Schlüsselentscheidung:" + neue String (Ergebnis)); // 4. Öffentliche Schlüsselverschlüsselung, private Key Decryption-Decryption X509EncodedKeySpec = New X509CodedKeySpec (rsapublickey.getEcoded ()); 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 ("Public Key-Verschlüsselung, private Schlüsselentschlüsselungsverschlüsselung:" + Base64.Encodebase64String (Ergebnis)); // 5. Verschlüsselung der öffentlichen Schlüssel, private Schlüsselentwicklung-Dekorption-PKCS8CodedKeySpec = NEU PKCS8EncodedKeyspec (rsaprivateKey.getEnCoded ()); KeyFactory = KeyFactory.getInstance ("RSA"); privateschlüssel = keyFactory.generatePrivate (PKCS8EncodedKeySpec); cipher = cipher.getInstance ("RSA"); cipher.init (cipher.decrypt_mode, privateKey); result = cipher.dofinal (Ergebnis); System.out.println ("Public Key-Verschlüsselung, private Schlüsselentwicklungs-Decke:" + neue String (Ergebnis)); } catch (Ausnahme e) {e.printstacktrace (); }}}Vier Realisierungseffekte
Öffentlicher Schlüssel: mfwwdqyjkozihvcnaqebbqadswawajbajcbeob97idkkirbmx3moy5e4erwh0uvc2bcnly1rdo0lz8ibr1Bl1Rjxwkhv7u0aso/5DBLNNNNNNGBQRTSJLTSJLTSJLTSJLTSJLTSJLTSJLTSJLTSJLTSJLTSJLTSJLSCPMCAWEAQ=
Privatschlüssel: Miibvaibadanbgkqhkig9w0baqefaascat4wgge6ageaaKealwf45v3sh2SSKSGBHCW5JL7H5HCHS68LYFW2VJWSOJSVNYJTHVUXVELDAQE/TTQBI7/ kmgweecztbg2wmwi8widaqabakadskprsl+ew3s2n+cemizxfyyb0xhs1d84qapafpixkunvwl0a4ovrwsnwt4mejatwvtufnvtxizzdx+q5dbbai EA9TZZYMGRU+3MDLAX0ICF+NIQWVLQYVEDKA4KSX5GVUCIQCDOEX6MQGRP78AQJYKWEOGWLISZJU5FN/LFVKZRCGBJWIHAMVBBLZYKHY0IKW75KD /lkSyouty+20BAP+MIDRQGZAIA6R36EERKZQUBTCL8LXYPB5F79HTXD5DCVNIB/ZGP0UWIGWTXI7IXHJYCSNOMSJDU1J3DU9KQQUW/EOHXRK/OGUYE =
Private Schlüsselverschlüsselung, öffentliche Schlüsselentzündung - Verschlüsselung: vjkfsoelvkes5rprhsjk9tdtzohdells7yluidcyee7dkucm9srj8kwadynhi4m0olafjhk6447hp7ia8x7a ==
Private Schlüsselverschlüsselung, öffentliche Schlüssel Entschlüsselung - Entschlüsselung: Cakin24 Sicherheit RSA
Öffentliche Schlüsselverschlüsselung, private Key Decryption - Verschlüsselung: gawl73uxHTO+EFKKPMFMDHTK0VH7HB8N+30L1HP8AAMIAGD21H2X/Q/NS+SOGSOXNOVUNZASGZENMZZCJB4VEA ==
Öffentliche Schlüsselverschlüsselung, private Schlüsselentschlüsselung - Entschlüsselung: Cakin24 Sicherheit RSA
Fünf Anwendungsszenarien
PS: Freunde, die an Verschlüsselung und Entschlüsselung interessiert sind, können sich auch auf die Online -Tools dieser Website beziehen:
Online -RSA -Verschlüsselungs-/Entschlüsselungswerkzeuge:
http://tools.vevb.com/password/rsa_encode
Text Online -Verschlüsselung und Entschlüsselung (einschließlich AES, DES, RC4 usw.):
http://tools.vevb.com/password/txt_encode
MD5 Online -Verschlüsselungstool:
http://tools.vevb.com/password/createmd5password
Online -Hash/Hash -Algorithmus -Verschlüsselungstool:
http://tools.vevb.com/password/hash_encrypt
Online MD5/Hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160-Verschlüsselungsinstrument:
http://tools.vevb.com/password/hash_md5_sha
Online SHA1/SHA224/SHA256/SHA384/SHA512 Verschlüsselungsinstrument:
http://tools.vevb.com/password/sha_encode
Weitere Informationen zu Java -verwandten Inhalten finden Sie in den Themen dieser Website: "Zusammenfassung der Java -Mathematischen Betriebsfähigkeiten", "Tutorial zu Java -Datenstrukturen und Algorithmen", "Zusammenfassung von Java -Zeichen und String -Operation -Fähigkeiten", "Zusammenfassung der Java -Operation DOM -Knotenfähigkeiten" und "Zusammenfassung der Fähigkeiten der Java -Operation Fähigkeiten"
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.