Dieser Artikel beschreibt den in Java implementierten RSA -Verschlüsselungs- und Entschlüsselungsalgorithmus. Teilen Sie es für Ihre Referenz wie folgt weiter:
Import Java.awt.Alphacomposite; Import Java.awt.Color; Import Java.awt.font; Import Java.awt.graphics2d; Import Java.awt.image; Import Java.awt.RenderingHints; Import Java.awt.image.bufufperedimage; Java.io.FileInputStream; Import Java.io.FileOutputStream; Import Java.io.objectinputStream; Import Java.io.objectoutputStream; Import Java.security.Key; Import Java.Security.Keypair; java.security.interfaces.rsaprivateKey; import Java.security.interfaces.rsapublickey; Import Javax.Crypto.Cipher; Versuchen Sie {// Keypairgenerator werden verwendet, um öffentliche und private Schlüsselpaare zu generieren, und das Objekt wird basierend auf dem RSA -Algorithmus generiert. Tastaturenerator gen = keypairgenerator.getInstance ("RSA"); // Initialisieren Sie den Schlüsselpaargenerator, die Schlüsselgröße beträgt 1024 Bits Gen.initialize (1024); // // eine starke Zufallszahl generieren // Securerandom random = new Securerandom (); // gen.initialize (1024, random); // ein Schlüsselpaar erzeugen und es im Paar Tastairpair = Gen.GenerateKeypair () speichern; // Erhalten Sie das private Schlüssel RsaprivateKey PRIKEY = (rsaprivateKey) pair.getPrivate (); // das öffentliche Schlüssel rsapublickey pubkey = (rsapublickey) pair.getPublic (); // private Schlüsseldatei -ObjektOutputStream OS = New ObjectOutputStream (neuer FileOutputStream (PRIKEYFILE)) generieren; os.writeObject (prikey); os.flush (); os.close (); // öffentliche Schlüsseldatei generieren os = new ObjectOutputStream (neuer FileOutputStream (PUBKEYFILE)); OS.WriteObject (Pubkey); os.flush (); os.close (); result = "Generelle öffentliche Schlüsseldatei ["+pubrkeyFile+"] erzeugen Sie eine private Schlüsseldatei ["+PRIKEYFILE+"]"; } catch (Ausnahme e) {e.printstacktrace (); } Rückgabeergebnis; } public static void main (String [] args) {try {String pubfile = "f: /images/pub.key"; String lizenz = "f: /images/pri.key"; String -Ergebnis = null; // result = makeKeyFile (PubFile, Lizenz); result = markpUpra (PubFile, Lizenz); System.out.println (Ergebnis); } catch (Ausnahme e) {e.printstacktrace (); }} public static String markpUpra (String PubFile, String -Lizenz) {String -Ergebnisse = "Verschlüsselungsfehler ist aufgetreten"; try {ObjectInputStream os = new ObjectInputStream (neuer FileInputStream (PUBFILE)); Rsapublickey pubkey = (rsapublickey) os.ReadObject (); os.close (); OS = New ObjectInputStream (neuer FileInputStream (Prifile)); RsaprivateKey pholey = (rsaprivateKey) os.ReadObject (); os.close (); String utf = "utf-8"; String msg = "## China % der % people @+_"; // öffentliche Schlüssel verwenden, um den privaten Schlüssel zum Entschlüsseln von System.out.println zu verschlüsseln ("Originaltext:" + msg); byte [] puk = Handledata (Pubkey, msg.getBytes (UTF), 1); System.out.println ("verschlüsselte Dateidaten:" + neue String (PUK, UTF)); byte [] dpuk = gehandeltata (priikey, puk, 0); System.out.println ("entschlüsselte Dateidaten:" + neuer String (dpuk, utf)); msg = "jd#unser ¥+=#new"; // Private Schlüssel verwenden, um den öffentlichen Schlüssel zum Entschlüsseln von System.out.println ("Originaltext:" + MSG) zu verschlüsseln; byte [] prk = gehandeltata (prikey, msg.getBytes (utf), 1); System.out.println ("verschlüsselte Dateidaten:" + neue String (PRK, UTF)); Byte [] DPRK = Handledata (Pubkey, PRK, 0); System.out.println ("entschlüsselte Dateidaten:" + neuer String (DPRK, UTF)); Ergebnisse = "Verschlüsselung und Entschlüsselung abgeschlossen"; } catch (Ausnahme e) {e.printstacktrace (); } Rückgabeergebnisse; } / ** * * @param k * @param data * @param recrypt 1 Verschlüsselung 0 decryption * @return * @throws Exception * / public static byte [] Handledata (Schlüsselschlüssel, Byte [] Daten, int type) löst Ausnahme {if (key! = null) {cipher ci = cipher. if (type == 1) {ci.init (cipher.encrypt_mode, key); byte [] res = ci.dofinal (Daten); return res; } if (type == 0) {ci.init (cipher.decrypt_mode, key); byte [] res = ci.dofinal (Daten); return res; }} return null; }}PS: Freunde, die an Verschlüsselung und Entschlüsselung interessiert sind, können sich auch auf die Online -Tools dieser Website beziehen:
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.