vernam murcielago mensaje hill encriptar desencriptar dato como cifrado archivos java cryptography

murcielago - encriptar y desencriptar rsa en java



Cómo cifrar o descifrar un archivo en Java? (2)

Quiero cifrar y descifrar un archivo en Java, leí esta url http://www-users.york.ac.uk/~mal503/lore/pkencryption.htm y obtuve dos archivos, a saber, certificado de seguridad pública y seguridad privada archivo de certificado y archivo privado.pem, copié estos archivos y pegué en el directorio actual y worte el código de Java de la siguiente manera, cuando lo ejecuto no se realiza cifrado o descifrado, por favor vea esto y dígame dónde me salió mal

Encriptar código

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

Descifrar código

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


Simplemente has confundido tus archivos. Este código funciona usando los archivos DER generados desde openssl como se describe en el artículo que vinculó:

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


Aquí está la pieza de código más simple para encriptar un documento con cualquier clave (aquí clave aleatoria)

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