[Java] Comment chiffrer avec le chiffrement AES avec une bibliothèque standard

Chose que tu veux faire

Exemple de processus de cryptage / décryptage

Exemple d'implémentation

CryptSample.java


package com.tamorieeeen.sample

import java.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

/**
 *chiffrement/Échantillon de traitement de décryptage
 * @author tamorieeeen
 */
public class CryptSample {

  //algorithme/Mode bloc/Méthode de remplissage
  private static final String ALGORITHM = "AES/CBC/PKCS5Padding";
  //Clé utilisée pour le cryptage et le décryptage
  private static final String ENCRYPT_KEY = "yourEncryptKey01";
  //Vecteur initial
  private static final String INIT_VECTOR = "yourInitVector01";

  private final IvParameterSpec iv = new IvParameterSpec(INIT_VECTOR.getBytes());
  private final SecretKeySpec key = new SecretKeySpec(ENCRYPT_KEY.getBytes(), "AES");

  /**
   *Enregistrer le jeton
   */
  public void saveToken(String token) {

    String encryptedToken = this.encryptToken(token);
    //Enregistrer encryptedToken dans DB
    this.saveTokenToDb(encryptedToken);
  }

  /**
   *Processus de cryptage
   */
  private String encryptToken(String token) throws Exception {

    Cipher encrypter = Cipher.getInstance(ALGORITHM);
    encrypter.init(Cipher.ENCRYPT_MODE, this.key, this.iv);
    byte[] byteToken = encrypter.doFinal(token.getBytes());

    return new String(Base64.getEncoder().encode(byteToken));
  }

  /**
   *Obtenez un jeton
   */
  public String getToken() {

    //Obtenir le jeton de la base de données
    String encryptedToken = this.getEncryptedTokenFromDb();

    return this.decryptToken(encryptedToken);
  }

  /**
   *Processus de décryptage
   */
  private String decryptToken(String encryptedToken) throws Exception {

    Cipher decrypter = Cipher.getInstance(ALGORITHM);
    decrypter.init(Cipher.DECRYPT_MODE, this.key, this.iv);
    byte[] byteToken = Base64.getDecoder().decode(encryptedToken);

    return new String(decrypter.doFinal(byteToken));
  }

  /**À partir de maintenant, créez les méthodes dont vous avez besoin**/

  /**
   *Enregistrer le jeton dans la base de données
   */
  private void saveTokenToDb(String encryptedToken) throws Exception {

    //Traitement pour enregistrer encryptedToken dans DB
  }

  /**
   *Obtenir le jeton de la base de données
   */
  private String getEncryptedTokenFromDb() throws Exception {

    //Processus pour obtenir un jeton de la base de données
  }
}

référence

[Java] Utiliser la cryptographie avec la bibliothèque standard Faisons le traitement du cryptage!

Recommended Posts

[Java] Comment chiffrer avec le chiffrement AES avec une bibliothèque standard
Comment compiler Java avec VsCode & Ant
[Java] Résumez comment comparer avec la méthode equals
[Java] Comment tester s'il est nul dans JUnit
Comment utiliser le framework Java avec AWS Lambda! ??
Comment utiliser l'API Java avec des expressions lambda
Crypter / décrypter avec AES256 en PHP et Java
Comment appeler des fonctions en bloc avec la réflexion Java
[Java] Comment omettre l'injection de constructeur de ressort avec Lombok
Comment déployer Java sur AWS Lambda avec Serverless Framework
Comment utiliser la bibliothèque non standard Java sur IntelliJ IDEA
Comment utiliser la bibliothèque Z3 dans Scala avec Eclipse
Comment sortir le standard d'un tableau avec for Each
Comment utiliser Truth (bibliothèque d'assertions pour Java / Android)
Comment utiliser la bibliothèque JDD dans Scala avec Eclipse
Comment créer un environnement de développement Java avec VS Code
[Java] Comment rompre une ligne avec StringBuilder
Code à utiliser lorsque vous souhaitez traiter Json en Java avec uniquement des bibliothèques standard
Comment abaisser la version java
[Java] Comment utiliser Map
Java pour jouer avec Function
Java - Comment créer JTable
Comment utiliser java Facultatif
Comment réduire les images Java
Comment rédiger un commentaire java
Cryptage / décryptage RSA avec Java 8
Comment utiliser la classe Java
[Java] Comment utiliser removeAll ()
[Java] Comment afficher les Wingdings
Comment numéroter (nombre) avec html.erb
Comment utiliser Java Map
Comment mettre à jour avec activerecord-import
Comment définir des constantes Java
Connectez-vous à DB avec Java
Connectez-vous à MySQL 8 avec Java
Comment utiliser les variables Java
Comment convertir la base Java
[Java] Comment implémenter le multithreading
Comment initialiser un tableau Java
Comment inverser la compilation du fichier apk en code source Java avec MAC
Comment gérer les exceptions froidement avec Java 8 Stream ou en option
A étudié comment appeler des services avec Watson SDK pour Java
[Java] Je souhaite tester l'entrée standard et la sortie standard avec JUnit
Créez un serveur Web simple avec la bibliothèque standard Java com.sun.net.httpserver
Comment démarrer avec Slim
Étudier Java # 6 (Comment écrire des blocs)
Utiliser Microsoft Graph avec Java standard
[Java] Points à noter avec Arrays.asList ()
Comment créer un conteneur Java
Comment désassembler un fichier de classe Java
Comment entourer n'importe quel caractère avec "~"
Comment utiliser HttpClient de Java (Post)
[Java] Comment utiliser la méthode de jointure
Osez défier Kaggle avec Java (1)