Si vous avez besoin pour chiffrer les petits fichiers en Java, il suffit de charger toutes les données en mémoire, chiffrer et écrire arrière. Toutefois, pour les grands fichiers qui peuvent dépasser la taille de la mémoire de l' ordinateur, cette approche sera beaucoup trop lent. Vous aurez plutôt besoin de transmettre des données directement dans un cours d'eau à partir du fichier pour le nouveau fichier crypté. Choses que vous devez
Netbeans
Voir Plus Instructions
1
créer un fichier texte vide nommé " Encrypter.java " et collez le code initial suivant dedans :
java.io.File d'importation; java.io.FileInputStream d'importation; java.io.FileNotFoundException d'importation; java.io.FileOutputStream d'importation; import java.io.IOException ; java.io.InputStream d'importation; import java . io.OutputStream ; java.security.InvalidAlgorithmParameterException d'importation; java.security.InvalidKeyException d'importation; java.security.NoSuchAlgorithmException d'importation; java.security.spec.AlgorithmParameterSpec d'importation; javax.crypto.Cipher d'importation; javax.crypto.CipherOutputStream d'importation; import javax . crypto.KeyGenerator ; javax.crypto.NoSuchPaddingException d'importation; javax.crypto.SecretKey à l'importation , l'importation javax.crypto.spec.IvParameterSpec ;
classe Encrypter publique {
publique de cryptage static void ( SecretKey clé, InputStream , OutputStream out) {}
public static void main ( string [] args) {}}
Cela a deux méthodes : une méthode principale qui va prendre deux arguments - le fichier source et le fichier de destination - et une méthode de cryptage qui prend deux ruisseaux et une clé de chiffrement
2
Collez le texte suivant dans les parenthèses de la méthode principale:
fichier inFile . = new File ( args [ 0 ] ) ; outFile fichier = new File ( args [ 1]);
try { SecretKey key = KeyGenerator.getInstance ( "DES" ) generateKey (); . Encrypter.encrypt (key, nouveau FileInputStream ( inFile ) , nouveau FileOutputStream ( outFile ) ) ; } catch ( FileNotFoundException e) { } catch ( NoSuchAlgorithmException e) {}
Cela crée une clé secrète pour le Data Encryption Standard (DES) méthode de cryptage et immédiatement appelle la méthode de cryptage , avec la clé et un flux pour les fichiers source et de destination
3
Collez le texte suivant dans la méthode Encrypt : .
< p > try { byte [] iv = new byte [] { (octet) 0x8E , 0x12 , 0x39 , (octet) 0x9C , 0x07 , 0x72 , 0x6F , 0x5A };
AlgorithmParameterSpec paramSpec = new IvParameterSpec ( iv) ; Cipher c = Cipher.getInstance ( " DES/CBC/PKCS5Padding "); c.init ( Cipher.ENCRYPT_MODE , clé, paramSpec ) ;
rupture = new CipherOutputStream (out, c); int count = 0; byte [] buffer = new byte [ 1024] ;
while (( count = in.read (buffer ) ) > = 0) { out.write (buffer , 0 , count) ;} out . close (); } catch (IOException e) { } catch ( InvalidAlgorithmParameterException e) { } catch ( InvalidKeyException e) { } catch ( NoSuchAlgorithmException e) { } catch ( NoSuchPaddingException e) {}
Ceci met en place un vecteur d'initialisation à utiliser pour le chiffrement dES. Les données sont lues à partir de la InputStream , crypté et écrit sur 1024 octets à la fois, permettant même des fichiers de plusieurs gigaoctets pour être efficace crypté sans surcharger la mémoire.
4
Enregistrez votre travail . Si vous utilisez un environnement de développement intégré Java (IDE) , vous pouvez compiler en cliquant sur le bouton " Générer " . Sinon, vous devrez exécuter la commande suivante dans l'invite de commande pour compiler :
javac Encrypter.java
5
Pour crypter un fichier, tapez la commande suivante dans une commande invite: .
java Encrypt sourceFile DestinationFile
Remplacer " sourceFile " et " DestinationFile " avec les noms de fichiers nécessaires