Comment crypter ou décrypter un fichier en Java?


Je veux crypter et décrypter un fichier en java, j'avais lu cette URL http://www-users.york.ac.uk / ~mal503/lore/pkencryption.htm et j'ai deux fichiers à savoir le certificat de sécurité publique et le fichier de certificat de sécurité privée et privé.fichier pem, j'ai copié ces fichiers et collé dans le répertoire actuel et worte code java comme suit, quand je lance ce aucun cryptage ou décryptage est effectué, pls voir cela et me dire où je me suis trompé

Crypter le code

File ecryptfile=new File("encrypt data");
                File publickeydata=new File("/publickey");
                File encryptmyfile=new File("/sys_data.db");
                File copycontent =new File("Copy Data");
                secure.makeKey();
                secure.saveKey(ecryptfile, publickeydata);
                secure.encrypt(encryptmyfile, copycontent);

Décrypter code

File ecryptfile=new File("encrypt data");
                File privateKeyFile=new File("/privatekey");
                File encryptmyfile=new File("/sys_data.db");
                File unencryptedFile =new File("unencryptedFile");
                try {
                                secure.loadKey(encryptmyfile, privateKeyFile);
                                secure.decrypt(encryptmyfile, unencryptedFile);
                        } catch (GeneralSecurityException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
Author: Selvi Priya, 2011-04-12

2 answers

Vous avez simplement brouillé vos fichiers. Ce code fonctionne en utilisant les fichiers DER générés à partir d'openssl comme décrit dans l'article que vous avez lié:

    FileEncryption secure = new FileEncryption();

    // Encrypt code
    {
        File encryptFile = new File("encrypt.data");
        File publicKeyData = new File("public.der");
        File originalFile = new File("sys_data.db");
        File secureFile = new File("secure.data");

        // create AES key
        secure.makeKey();

        // save AES key using public key
        secure.saveKey(encryptFile, publicKeyData);

        // save original file securely 
        secure.encrypt(originalFile, secureFile);
    }

    // Decrypt code
    {
        File encryptFile = new File("encrypt.data");
        File privateKeyFile = new File("private.der");
        File secureFile = new File("secure.data");
        File unencryptedFile = new File("unencryptedFile");

        // load AES key
        secure.loadKey(encryptFile, privateKeyFile);

        // decrypt file
        secure.decrypt(secureFile, unencryptedFile);
    }
 9
Author: Simon G., 2011-04-12 10:10:37

Voici le morceau de code le plus simple pour chiffrer un document avec n'importe quelle clé (Ici Clé aléatoire)

randomKey = randomKey.substring(0, 16);
        keyBytes = randomKey.getBytes();
        key = new SecretKeySpec(keyBytes, "AES");
        paramSpec = new IvParameterSpec(iv);
        ecipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
        ecipher.init(Cipher.ENCRYPT_MODE, key, paramSpec);
        in = new FileInputStream(srcFile);
        out = new FileOutputStream(encryptedFile);
        out = new CipherOutputStream(out, ecipher);
        int numRead = 0;
        while ((numRead = in.read(buf)) >= 0) {
            out.write(buf, 0, numRead);
        }
        in.close();
        out.flush();
        out.close();
 1
Author: Tushar, 2013-04-12 11:52:30