Maison  >  Article  >  Java  >  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

WBOY
WBOYoriginal
2023-08-06 18:25:051051parcourir

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);
    }
}

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);
    }
}

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);
    }
}

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:
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