Symmetrische Verschlüsselungskryptographie in Java
Einführung
Symmetrische Verschlüsselung, auch Schlüsselverschlüsselung genannt, ist eine Verschlüsselungsmethode, bei der derselbe Schlüssel für die Ver- und Entschlüsselung verwendet wird. Diese Verschlüsselungsmethode ist schnell und effizient und eignet sich zur Verschlüsselung großer Datenmengen. Der am häufigsten verwendete symmetrische Verschlüsselungsalgorithmus ist Advanced Encryption Standard (AES).
Java bietet starke Unterstützung für symmetrische Verschlüsselung, einschließlich Klassen im javax.crypto-Paket, wie SecretKey, Cipher und KeyGenerator.
Symmetrische Verschlüsselung in Java
Die Java Cipher-Klasse im Paket javax.crypto stellt kryptografische Funktionen für die Ver- und Entschlüsselung bereit. Es bildet den Kern des Java Cryptozoology Extensions (JCE)-Frameworks.
In Java stellt die Cipher-Klasse die Funktion der symmetrischen Verschlüsselung bereit, und die KeyGenerator-Klasse wird zum Generieren von Schlüsseln für die symmetrische Verschlüsselung verwendet.
Die chinesische Übersetzung vonBeispiel
lautet:Beispiel
Sehen wir uns ein Beispiel einer einfachen symmetrischen Verschlüsselung AES an, die in Java implementiert ist −
import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import java.nio.charset.StandardCharsets; import java.util.Base64; public class Main { public static void main(String[] args) throws Exception { // Generate key SecretKey secretKey = KeyGenerator.getInstance("AES").generateKey(); // Original message String originalMessage = "Hello, world!"; // Create Cipher instance and initialize it to ENCRYPT_MODE Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, secretKey); // Encrypt the message byte[] encryptedMessage = cipher.doFinal(originalMessage.getBytes(StandardCharsets.UTF_8)); // Convert the encrypted message to Base64 encoded string String encodedMessage = Base64.getEncoder().encodeToString(encryptedMessage); System.out.println("Original Message: " + originalMessage); System.out.println("Encrypted Message: " + encodedMessage); // Reinitialize the cipher to DECRYPT_MODE cipher.init(Cipher.DECRYPT_MODE, secretKey); // Decrypt the message byte[] decryptedMessage = cipher.doFinal(Base64.getDecoder().decode(encodedMessage)); System.out.println("Decrypted Message: " + new String(decryptedMessage, StandardCharsets.UTF_8)); } }
Ausgabe
Wenn Sie das Programm ausführen, sehen Sie eine Ausgabe ähnlich der folgenden -
Original Message: Hello, world! Encrypted Message: iWohhm/c89uBVaJ3j4YFkA== Decrypted Message: Hello, world!
Erklärung
lautet:Erklärung
Im obigen Code generieren wir zunächst den geheimen Schlüssel für die AES-Verschlüsselung mithilfe der KeyGenerator-Klasse.
Dann erstellen wir eine Instanz der Cipher-Klasse für AES und initialisieren sie mit dem geheimen Schlüssel auf ENCRYPT_MODE.
Als nächstes definieren wir eine Rohnachricht „Hello, world!“ und verschlüsseln sie mit der doFinal-Methode von Cipher. Wir wandeln die verschlüsselten Nachrichtenbytes auch in eine Base64-codierte Zeichenfolge um, um die Verarbeitung zu erleichtern.
Dann drucken wir die Originalnachricht und die verschlüsselte Nachricht an die Konsole.
Um die Entschlüsselung zu demonstrieren, verwenden wir denselben Schlüssel, um das Passwort auf DECRYPT_MODE neu zu initialisieren und die verschlüsselte Nachricht zu entschlüsseln. Abschließend geben wir die entschlüsselte Nachricht an die Konsole aus.
Da jedes Mal, wenn Sie das Programm ausführen, ein einzigartiger geheimer Schlüssel generiert wird, ist die verschlüsselte Nachricht jedes Mal anders.
Hier ist zu beachten, dass die entschlüsselte Nachricht mit der Originalnachricht identisch ist, was darauf hindeutet, dass unser Ver- und Entschlüsselungsprozess ordnungsgemäß funktioniert.
Wichtige Punkte
Symmetrische Verschlüsselung ist ein leistungsstarkes Tool zur Wahrung der Vertraulichkeit, aber es ist wichtig zu bedenken, dass Ihre Daten nur so sicher sind wie Ihre Schlüssel. Wenn eine unbefugte Person an Ihren geheimen Schlüssel gelangt, kann sie Ihre Daten entschlüsseln. Daher ist es wichtig, den geheimen Schlüssel sicher aufzubewahren.
Fazit
Die Implementierung der symmetrischen Verschlüsselung in Java ist dank des Pakets javax.crypto ein einfacher Vorgang. Wenn Sie wissen, wie Sie die Klassen Cipher und KeyGenerator zum Ver- und Entschlüsseln von Daten verwenden, können Sie die Sicherheit Ihrer Java-Anwendungen erheblich verbessern.
Das obige ist der detaillierte Inhalt vonSymmetrische Verschlüsselungskryptographie in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Wie schreibe ich einen einfachen Generator für Schülerleistungsberichte mit Java? Der Student Performance Report Generator ist ein Tool, das Lehrern und Erziehern dabei hilft, schnell Berichte über die Schülerleistung zu erstellen. In diesem Artikel wird erläutert, wie Sie mit Java einen einfachen Generator für Schülerleistungsberichte schreiben. Zuerst müssen wir das Studentenobjekt und das Studentennotenobjekt definieren. Das Schülerobjekt enthält grundlegende Informationen wie den Namen und die Schülernummer des Schülers, während das Schülerergebnisobjekt Informationen wie die Fachnoten und die Durchschnittsnote des Schülers enthält. Das Folgende ist die Definition eines einfachen Studentenobjekts: öffentlich

Wie schreibe ich ein einfaches System zur Anwesenheitsverwaltung von Studenten mit Java? Mit der kontinuierlichen Weiterentwicklung der Technologie werden auch die Schulverwaltungssysteme ständig aktualisiert und verbessert. Das Anwesenheitsmanagementsystem der Schüler ist ein wichtiger Teil davon. Es kann der Schule dabei helfen, die Anwesenheit der Schüler zu verfolgen und Datenanalysen und Berichte bereitzustellen. In diesem Artikel wird vorgestellt, wie man mit Java ein einfaches System zur Anwesenheitsverwaltung von Studenten schreibt. 1. Anforderungsanalyse Bevor wir mit dem Schreiben beginnen, müssen wir die Funktionen und Anforderungen des Systems ermitteln. Zu den Grundfunktionen gehören die Registrierung und Verwaltung von Studenteninformationen, die Aufzeichnung von Anwesenheitsdaten von Studenten und

So implementieren Sie die Adresssuche der Amap-API mithilfe der Java-Programmierung. Einführung: Amap ist ein sehr beliebter Kartendienst und wird häufig in verschiedenen Anwendungen verwendet. Unter anderem bietet die Suchfunktion in der Nähe des Adressstandorts die Möglichkeit, nach POIs (Points of Interest) in der Nähe zu suchen. In diesem Artikel wird ausführlich erläutert, wie Sie mithilfe der Java-Programmierung die Adresssuchfunktion der Amap-API implementieren und Codebeispiele verwenden, um den Lesern das Verständnis und die Beherrschung verwandter Technologien zu erleichtern. 1. Bewerben Sie sich für die Amap-Entwicklung

Ein String ist eine Klasse des „java.lang“-Pakets, das eine Reihe von Zeichen speichert. Bei diesen Zeichen handelt es sich tatsächlich um Objekte vom Typ „String“.

So implementieren Sie die Bestandsstatistikfunktion des Lagerverwaltungssystems mit Java Mit der Entwicklung des E-Commerce und der zunehmenden Bedeutung der Lagerverwaltung ist die Bestandsstatistikfunktion zu einem unverzichtbaren Bestandteil des Lagerverwaltungssystems geworden. In Java geschriebene Lagerverwaltungssysteme können Bestandsstatistikfunktionen durch prägnanten und effizienten Code implementieren und so Unternehmen dabei helfen, die Lagerhaltung besser zu verwalten und die betriebliche Effizienz zu verbessern. 1. Einführung in den Hintergrund Das Lagerverwaltungssystem bezieht sich auf eine Verwaltungsmethode, die Computertechnologie verwendet, um Datenverwaltung, Informationsverarbeitung und Entscheidungsanalyse im Lager eines Unternehmens durchzuführen. Bestandsstatistiken sind

ChatGPTJava: Für den Aufbau eines intelligenten Musikempfehlungssystems sind spezifische Codebeispiele erforderlich. Einführung: Mit der rasanten Entwicklung des Internets ist Musik zu einem wesentlichen Bestandteil des täglichen Lebens der Menschen geworden. Da immer mehr Musikplattformen entstehen, stehen Benutzer häufig vor einem gemeinsamen Problem: Wie finden sie Musik, die ihrem Geschmack entspricht? Um dieses Problem zu lösen, wurde das intelligente Musikempfehlungssystem ins Leben gerufen. In diesem Artikel wird erläutert, wie Sie mit ChatGPTJava ein intelligentes Musikempfehlungssystem erstellen und spezifische Codebeispiele bereitstellen. NEIN.

Gängige Tools zur Leistungsüberwachung und -optimierung in der Java-Entwicklung erfordern spezifische Codebeispiele. Einführung: Mit der kontinuierlichen Weiterentwicklung der Internettechnologie wird Java als stabile und effiziente Programmiersprache häufig im Entwicklungsprozess verwendet. Aufgrund der plattformübergreifenden Natur von Java und der Komplexität der laufenden Umgebung sind Leistungsprobleme jedoch zu einem Faktor geworden, der bei der Entwicklung nicht ignoriert werden kann. Um eine hohe Verfügbarkeit und schnelle Reaktion von Java-Anwendungen sicherzustellen, müssen Entwickler die Leistung überwachen und optimieren. In diesem Artikel werden einige gängige Java-Leistungsüberwachungen und -optimierungen vorgestellt

So verwenden Sie Java zum Implementieren des Breitensuchalgorithmus Der Breitensuchalgorithmus (Breadth-FirstSearch, BFS) ist ein häufig verwendeter Suchalgorithmus in der Graphentheorie, der den kürzesten Weg zwischen zwei Knoten im Diagramm finden kann. BFS wird häufig in vielen Anwendungen verwendet, z. B. beim Finden des kürzesten Pfads in einem Labyrinth, bei Webcrawlern usw. In diesem Artikel wird die Verwendung der Java-Sprache zur Implementierung des BFS-Algorithmus vorgestellt und spezifische Codebeispiele angehängt. Zuerst müssen wir eine Klasse zum Speichern von Diagrammknoten definieren. Diese Klasse enthält Knoten
