Maison Java javaDidacticiel Comment effectuer le cryptage et le déchiffrement des données pour le développement de fonctions Java

Comment effectuer le cryptage et le déchiffrement des données pour le développement de fonctions Java

Aug 06, 2023 pm 06:25 PM
数据加密(encryption) 数据解密(decryption) java编程(java programming)

Comment effectuer le cryptage et le décryptage des données pour le développement de fonctions Java

Le cryptage et le décryptage des données jouent un rôle important dans le domaine de la sécurité de l'information. Dans le développement Java, il existe de nombreuses façons d’implémenter des fonctions de chiffrement et de déchiffrement des données. Cet article présentera la méthode de cryptage et de déchiffrement des données à l'aide du langage de programmation Java et fournira des exemples de code.

1. Algorithme de cryptage symétrique

L'algorithme de cryptage symétrique utilise la même clé pour crypter et déchiffrer les données. Les algorithmes de chiffrement symétrique couramment utilisés incluent DES, 3DES, AES, etc.

Exemple de code :

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.security.SecureRandom;
import java.util.Base64;

public class SymmetricEncryptionExample {
    public static void main(String[] args) throws Exception {
        String plaintext = "Hello, World!";
        String secretKey = "0123456789abcdef";
        
        // Generate Key
        SecretKey key = new SecretKeySpec(secretKey.getBytes(), "AES");

        // Create Cipher
        Cipher cipher = Cipher.getInstance("AES");
        
        // Encrypt
        cipher.init(Cipher.ENCRYPT_MODE, key);
        byte[] encryptedBytes = cipher.doFinal(plaintext.getBytes());
        String encryptedText = Base64.getEncoder().encodeToString(encryptedBytes);
        System.out.println("Encrypted Text: " + encryptedText);

        // Decrypt
        cipher.init(Cipher.DECRYPT_MODE, key);
        byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedText));
        String decryptedText = new String(decryptedBytes);
        System.out.println("Decrypted Text: " + decryptedText);
    }
}
Copier après la connexion

2. Algorithme de cryptage asymétrique

L'algorithme de cryptage asymétrique utilise une paire de clés, la clé publique est utilisée pour le cryptage et la clé privée est utilisée pour le déchiffrement. En Java, l'algorithme de chiffrement asymétrique couramment utilisé est RSA.

Exemple de code :

import javax.crypto.Cipher;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.util.Base64;

public class AsymmetricEncryptionExample {
    public static void main(String[] args) throws Exception {
        String plaintext = "Hello, World!";

        // Generate Key Pair
        KeyPairGenerator keyGenerator = KeyPairGenerator.getInstance("RSA");
        keyGenerator.initialize(2048);
        KeyPair keyPair = keyGenerator.generateKeyPair();
        PublicKey publicKey = keyPair.getPublic();
        PrivateKey privateKey = keyPair.getPrivate();

        // Create Cipher
        Cipher cipher = Cipher.getInstance("RSA");

        // Encrypt
        cipher.init(Cipher.ENCRYPT_MODE, publicKey);
        byte[] encryptedBytes = cipher.doFinal(plaintext.getBytes());
        String encryptedText = Base64.getEncoder().encodeToString(encryptedBytes);
        System.out.println("Encrypted Text: " + encryptedText);

        // Decrypt
        cipher.init(Cipher.DECRYPT_MODE, privateKey);
        byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedText));
        String decryptedText = new String(decryptedBytes);
        System.out.println("Decrypted Text: " + decryptedText);
    }
}
Copier après la connexion

3. Algorithme de hachage

L'algorithme de hachage peut convertir des données de n'importe quelle longueur en une valeur de hachage de longueur fixe. Les algorithmes de hachage couramment utilisés incluent MD5, SHA-1, SHA-256, etc.

Exemple de code :

import java.security.MessageDigest;

public class HashAlgorithmExample {
    public static void main(String[] args) throws Exception {
        String plaintext = "Hello, World!";

        // Create MessageDigest
        MessageDigest md = MessageDigest.getInstance("SHA-256");

        // Hash
        byte[] hashedBytes = md.digest(plaintext.getBytes());
        StringBuilder stringBuilder = new StringBuilder();
        for (byte hashedByte : hashedBytes) {
            stringBuilder.append(Integer.toHexString(0xFF & hashedByte));
        }
        String hashedText = stringBuilder.toString();
        System.out.println("Hashed Text: " + hashedText);
    }
}
Copier après la connexion

Résumé :

Cet article présente les méthodes et les exemples de code d'utilisation de Java pour développer et implémenter le cryptage et le déchiffrement des données. Dans le développement réel, les algorithmes de chiffrement et les longueurs de clé appropriés sont sélectionnés en fonction des différents besoins pour garantir la sécurité des données.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

ChatGPT Java : Comment implémenter la synthèse automatique et extraire les informations clés des articles ChatGPT Java : Comment implémenter la synthèse automatique et extraire les informations clés des articles Oct 26, 2023 am 10:26 AM

ChatGPTJava : Comment implémenter la synthèse et l'extraction automatiques des informations clés des articles, des exemples de code spécifiques sont nécessaires. Le résumé et l'extraction des informations clés sont des tâches très importantes dans la récupération d'informations et le traitement de texte. Pour implémenter la synthèse automatique et extraire les informations clés des articles en Java, vous pouvez utiliser les bibliothèques de traitement du langage naturel (NLP) et les algorithmes associés. Cet article expliquera comment utiliser Lucene et StanfordCoreNLP pour implémenter ces fonctions et donnera des exemples de code spécifiques. 1. Résumé automatique Le résumé automatique est extrait du texte

Que comprend le stockage par cryptage des données ? Que comprend le stockage par cryptage des données ? Oct 18, 2023 am 09:52 AM

Le stockage du cryptage des données comprend le cryptage symétrique, le cryptage asymétrique, l'algorithme de hachage, la signature numérique et d'autres méthodes. Introduction détaillée : 1. Cryptage symétrique. Au cours du processus de cryptage, les données et la clé d'origine sont calculées par l'algorithme de cryptage pour générer un texte chiffré ; 2. Au cours du processus de cryptage asymétrique, les données sont cryptées avec la clé publique uniquement. être déchiffré avec la clé privée et vice versa ; 3. Algorithme de hachage, qui peut vérifier l'intégrité et la cohérence des données lors de la transmission et du stockage des données ; 4. Signature numérique, etc.

Comment PHP et Swoole parviennent-ils à crypter et décrypter efficacement les données ? Comment PHP et Swoole parviennent-ils à crypter et décrypter efficacement les données ? Jul 22, 2023 am 11:07 AM

PHP est un langage de programmation très populaire et largement utilisé dans le domaine du développement Web. Swoole est une extension de langage PHP hautes performances qui peut fournir des fonctionnalités telles que les E/S asynchrones et les coroutines, ce qui améliore considérablement les capacités de concurrence de PHP. Dans certains scénarios, nous devons chiffrer et déchiffrer les données, alors comment utiliser PHP et Swoole pour obtenir un cryptage et un décryptage efficaces des données ? Tout d'abord, introduisons le choix de l'algorithme de chiffrement. Dans les applications pratiques, les algorithmes de chiffrement couramment utilisés comprennent les algorithmes de chiffrement symétriques et les algorithmes de chiffrement asymétriques.

Diverses méthodes d'implémentation pour explorer l'utilisation des minuteries Java Diverses méthodes d'implémentation pour explorer l'utilisation des minuteries Java Dec 28, 2023 am 09:57 AM

Pour explorer les différentes méthodes d'implémentation des temporisateurs Java, des exemples de code spécifiques sont nécessaires dans le développement de logiciels modernes, les temporisateurs constituent une fonction très courante et importante. Il peut effectuer une tâche à un intervalle de temps spécifié ou à une heure spécifique et est souvent utilisé dans des scénarios tels que la détection de battements de cœur, la planification de tâches planifiées et l'actualisation des données. Dans le développement Java, il existe de nombreuses façons d'implémenter des minuteries. Cet article explorera certaines des méthodes courantes et fournira des exemples de code correspondants. Utilisez la classe java.util.Timer fournie avec Java

Méthodes d'appel couramment utilisées dans la réflexion Java Méthodes d'appel couramment utilisées dans la réflexion Java Dec 23, 2023 am 09:49 AM

Les méthodes d'appel couramment utilisées dans la réflexion Java nécessitent des exemples de code spécifiques Introduction : La réflexion Java est une fonctionnalité puissante du langage Java, qui nous permet d'obtenir dynamiquement des informations de classe et d'exploiter les attributs de classe, les méthodes, les constructeurs, etc. En Java, en utilisant la réflexion, nous pouvons réaliser de nombreuses fonctions, telles que la création dynamique d'objets, l'appel de méthodes et la modification de propriétés privées. Cet article présentera les méthodes d'appel couramment utilisées en réflexion en Java et fournira des exemples de code spécifiques. Obtenez l'objet Class avant d'utiliser la réflexion

Comment utiliser les techniques de refactoring en Java pour améliorer la qualité et la conception du code existant ? Comment utiliser les techniques de refactoring en Java pour améliorer la qualité et la conception du code existant ? Aug 03, 2023 pm 01:17 PM

Comment utiliser les techniques de refactoring en Java pour améliorer la qualité et la conception du code existant ? Introduction : Dans le développement de logiciels, la qualité et la conception du code affectent directement la maintenabilité et l'évolutivité du logiciel. La technologie de refactoring est un moyen efficace d’améliorer la qualité et la conception du code. Cet article présentera comment utiliser la technologie de refactoring en Java pour améliorer la qualité et la conception du code existant, et démontrera l'application de la technologie de refactoring à travers des exemples de code. 1. Comprendre le concept de refactoring. Le refactoring fait référence à la modification de la structure interne du code sans changer le comportement externe du code.

Problèmes courants et solutions à la sécurité du réseau en Python Problèmes courants et solutions à la sécurité du réseau en Python Oct 09, 2023 am 09:39 AM

Problèmes courants et stratégies de solution pour la sécurité des réseaux dans Python La sécurité des réseaux est l'un des problèmes importants qui ne peuvent être ignorés à l'ère de l'information d'aujourd'hui. Avec la popularité et l'application généralisée du langage Python, la sécurité des réseaux est également devenue un défi que les développeurs Python doivent relever et résoudre. Cet article présentera les problèmes courants de sécurité réseau en Python et fournira des stratégies de solution et des exemples de code correspondants. 1. Problèmes de sécurité du réseau Attaque par injection SQL L'attaque par injection SQL signifie que l'attaquant insère du code SQL malveillant dans les paramètres saisis par l'utilisateur,

Comment effectuer le cryptage et le déchiffrement des données pour le développement de fonctions Java Comment effectuer le cryptage et le déchiffrement des données pour le développement de fonctions Java Aug 06, 2023 pm 06:25 PM

Comment effectuer le cryptage et le déchiffrement des données dans le développement de fonctions Java Le cryptage et le déchiffrement des données jouent un rôle important dans le domaine de la sécurité de l'information. Dans le développement Java, il existe de nombreuses façons d’implémenter des fonctions de chiffrement et de déchiffrement des données. Cet article présentera la méthode de cryptage et de déchiffrement des données à l'aide du langage de programmation Java et fournira des exemples de code. 1. Algorithme de chiffrement symétrique L'algorithme de chiffrement symétrique utilise la même clé pour chiffrer et déchiffrer les données. Les algorithmes de chiffrement symétrique couramment utilisés incluent DES, 3DES, AES, etc. Exemple de code : importja

See all articles