Cryptographie à chiffrement symétrique en Java
Présentation
Le cryptage symétrique, également connu sous le nom de cryptage par clé, est une méthode de cryptage dans laquelle la même clé est utilisée pour le cryptage et le déchiffrement. Cette méthode de cryptage est rapide et efficace et adaptée au cryptage de grandes quantités de données. L’algorithme de chiffrement symétrique le plus couramment utilisé est Advanced Encryption Standard (AES).
Java fournit un support important pour le chiffrement symétrique, y compris les classes du package javax.crypto, telles que SecretKey, Cipher et KeyGenerator.
Cryptage symétrique en Java
La classe Java Cipher du package javax.crypto fournit des fonctions cryptographiques pour le cryptage et le déchiffrement. Il constitue le cœur du framework Java Cryptozoology Extensions (JCE).
En Java, la classe Cipher fournit la fonction de cryptage symétrique et la classe KeyGenerator est utilisée pour générer des clés pour le cryptage symétrique.
La traduction chinoise deExemple
est :Exemple
Regardons un exemple de chiffrement symétrique simple AES implémenté en Java−
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)); } }
Sortie
Lorsque vous exécutez le programme, vous verrez un résultat similaire à celui-ci :
Original Message: Hello, world! Encrypted Message: iWohhm/c89uBVaJ3j4YFkA== Decrypted Message: Hello, world!
Explication
est :Explication
Dans le code ci-dessus, nous générons d'abord la clé secrète pour le cryptage AES à l'aide de la classe KeyGenerator.
Ensuite, nous créons une instance de la classe Cipher pour AES et l'initialisons à ENCRYPT_MODE à l'aide de la clé secrète.
Ensuite, nous définissons un message brut "Hello, world!" et le chiffrons à l'aide de la méthode doFinal de Cipher. Nous convertissons également les octets du message chiffré en une chaîne codée en Base64 pour faciliter leur traitement.
Ensuite, nous imprimons le message original et le message crypté sur la console.
Pour démontrer le décryptage, nous réinitialisons le mot de passe sur DECRYPT_MODE en utilisant la même clé et déchiffrons le message crypté. Enfin, nous imprimons le message déchiffré sur la console.
Étant donné qu'une clé secrète unique est générée à chaque fois que vous exécutez le programme, le message crypté sera différent à chaque fois.
La chose importante à noter ici est que le message déchiffré est identique au message original, ce qui indique que notre processus de cryptage et de décryptage fonctionne correctement.
Points à retenir
Le cryptage symétrique est un outil puissant pour maintenir la confidentialité, mais il est important de se rappeler que vos données sont aussi sécurisées que vos clés. Si une personne non autorisée obtient votre clé secrète, elle peut décrypter vos données. Il est donc crucial de conserver la clé secrète en sécurité.
Conclusion
La mise en œuvre du chiffrement symétrique en Java est un processus simple, grâce au package javax.crypto. Comprendre comment utiliser les classes Cipher et KeyGenerator pour chiffrer et déchiffrer des données peut améliorer considérablement la sécurité de vos applications Java.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment rédiger un générateur simple de rapports sur les performances des étudiants en utilisant Java ? Student Performance Report Generator est un outil qui aide les enseignants ou les éducateurs à générer rapidement des rapports sur les performances des élèves. Cet article explique comment utiliser Java pour rédiger un simple générateur de rapports sur les performances des étudiants. Tout d’abord, nous devons définir l’objet étudiant et l’objet note étudiant. L'objet étudiant contient des informations de base telles que le nom et le numéro de l'étudiant, tandis que l'objet score de l'étudiant contient des informations telles que les résultats des matières et la note moyenne de l'étudiant. Voici la définition d'un objet étudiant simple : public

Comment écrire un système simple de gestion des présences des étudiants en utilisant Java ? Avec le développement continu de la technologie, les systèmes de gestion scolaire sont également constamment mis à jour et améliorés. Le système de gestion de l'assiduité des élèves en constitue un élément important. Il peut aider l'école à suivre l'assiduité des élèves et à fournir des analyses de données et des rapports. Cet article explique comment écrire un système simple de gestion des présences des étudiants à l'aide de Java. 1. Analyse des exigences Avant de commencer à écrire, nous devons déterminer les fonctions et les exigences du système. Les fonctions de base comprennent l'enregistrement et la gestion des informations sur les étudiants, l'enregistrement des données de fréquentation des étudiants et

Comment utiliser la programmation Java pour implémenter la recherche d'emplacement d'adresse de l'API Amap Introduction : Amap est un service de cartographie très populaire et largement utilisé dans diverses applications. Parmi eux, la fonction de recherche à proximité de l'emplacement de l'adresse offre la possibilité de rechercher des POI (Point of Interest, points d'intérêt) à proximité. Cet article expliquera en détail comment utiliser la programmation Java pour implémenter la fonction de recherche d'adresse de l'API Amap et utilisera des exemples de code pour aider les lecteurs à comprendre et à maîtriser les technologies associées. 1. Postuler pour le développement Amap

Une chaîne est une classe de package 'java.lang' qui stocke une série de caractères. Ces caractères sont en fait des objets de type String. Nous devons fermer la valeur de la chaîne entre guillemets doubles. Généralement, nous pouvons représenter les caractères en minuscules et en majuscules en Java. Et il est également possible de convertir

ChatGPTJava : Comment créer un système intelligent de recommandation musicale, des exemples de code spécifiques sont nécessaires Introduction : Avec le développement rapide d'Internet, la musique est devenue un élément essentiel de la vie quotidienne des gens. Alors que les plateformes musicales continuent d’émerger, les utilisateurs sont souvent confrontés à un problème commun : comment trouver la musique qui correspond à leurs goûts ? Afin de résoudre ce problème, le système intelligent de recommandation musicale a vu le jour. Cet article explique comment utiliser ChatGPTJava pour créer un système intelligent de recommandation musicale et fournit des exemples de code spécifiques. Non.

Comment utiliser Java pour implémenter la fonction de statistiques d'inventaire du système de gestion d'entrepôt. Avec le développement du commerce électronique et l'importance croissante de la gestion d'entrepôt, la fonction de statistiques d'inventaire est devenue un élément indispensable du système de gestion d'entrepôt. Les systèmes de gestion d'entrepôt écrits en langage Java peuvent mettre en œuvre des fonctions de statistiques d'inventaire grâce à un code concis et efficace, aidant les entreprises à mieux gérer le stockage en entrepôt et à améliorer l'efficacité opérationnelle. 1. Introduction au contexte Le système de gestion d'entrepôt fait référence à une méthode de gestion qui utilise la technologie informatique pour effectuer la gestion des données, le traitement de l'information et l'analyse décisionnelle sur l'entrepôt d'une entreprise. Les statistiques d'inventaire sont

Les outils courants de surveillance et de réglage des performances dans le développement Java nécessitent des exemples de code spécifiques Introduction : Avec le développement continu de la technologie Internet, Java, en tant que langage de programmation stable et efficace, est largement utilisé dans le processus de développement. Cependant, en raison de la nature multiplateforme de Java et de la complexité de l'environnement d'exécution, les problèmes de performances sont devenus un facteur incontournable dans le développement. Afin de garantir la haute disponibilité et la réponse rapide des applications Java, les développeurs doivent surveiller et ajuster les performances. Cet article présentera quelques fonctionnalités courantes de surveillance et de réglage des performances Java.

Comment utiliser Java pour implémenter l'algorithme de recherche en largeur d'abord L'algorithme de recherche en largeur d'abord (Breadth-FirstSearch, BFS) est un algorithme de recherche couramment utilisé dans la théorie des graphes, qui peut trouver le chemin le plus court entre deux nœuds du graphique. BFS est largement utilisé dans de nombreuses applications, telles que la recherche du chemin le plus court dans un labyrinthe, les robots d'exploration Web, etc. Cet article expliquera comment utiliser le langage Java pour implémenter l'algorithme BFS et joindra des exemples de code spécifiques. Tout d’abord, nous devons définir une classe pour stocker les nœuds du graphique. Cette classe contient des nœuds.
