Je dois crypter/décrypter le texte brut en Java en utilisant DES avec une clé. J'ai un très bon tutoriel chez IBM qui peut être trouvé here. Le problème avec cet exemple est qu'il génère la clé dans le programme lui-même. Maintenant, si je crypte une chaîne (par exemple un mot de passe) et que je la stocke dans la base de données, je ne serais pas capable de la déchiffrer car je ne connaîtrais pas la clé.Utiliser la clé privée dans Java en utilisant DES sans générer automatiquement la clé
est Ci-dessous l'exemple chez IBM
import java.security.*;
import javax.crypto.*;
//
// encrypt and decrypt using the DES private key algorithm
public class PrivateExample {
public static void main (String[] args) throws Exception {
//
// check args and get plaintext
if (args.length !=1) {
System.err.println("Usage: java PrivateExample text");
System.exit(1);
}
byte[] plainText = args[0].getBytes("UTF8");
//
// get a DES private key
System.out.println("\nStart generating DES key");
KeyGenerator keyGen = KeyGenerator.getInstance("DES");
keyGen.init(56);
Key key = keyGen.generateKey();
System.out.println("Finish generating DES key");
//
// get a DES cipher object and print the provider
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
System.out.println("\n" + cipher.getProvider().getInfo());
//
// encrypt using the key and the plaintext
System.out.println("\nStart encryption");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] cipherText = cipher.doFinal(plainText);
System.out.println("Finish encryption: ");
System.out.println(new String(cipherText, "UTF8"));
//
// decrypt the ciphertext using the same key
System.out.println("\nStart decryption");
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] newPlainText = cipher.doFinal(cipherText);
System.out.println("Finish decryption: ");
System.out.println(new String(newPlainText, "UTF8"));
}
}
Quelqu'un peut-il suggérer comment puis-je ajouter ma propre clé dans cet exemple?
merci pour la réponse rapide, mais pouvez-vous être un peu plus précis s'il vous plaît. generateKey ne prend aucun argument! – antnewbee
generateKey génère une clé aléatoire. Il peut être plus simple pour vous de sauvegarder cette clé à utiliser pour le déchiffrement plutôt que d'ajouter du code pour analyser un argument clé. – jacknad
Cela ne semble pas très bien car je vais utiliser cette classe dans toute l'application et chaque fois que je redémarre le serveur, la clé va changer. – antnewbee