Criptografar Arquivo

Amigos alguém pode me explicar como que eu faço para criptografar um arquivo ?

De que forma? Simétrica ou assimétrica?

Qual a diferenças entre as duas amigo ?

Se você não sabe deve querer criptografia simétrica. Mas basicamente a diferença entre ambas é:

Simétrica: Eu uso a mesma chave para criptografar/descriptografar
Assimétrica: Eu tenho duas chaves: uma só eu conheço(privada) e outra todo mundo pode conhecer(pública). Eu mando a minha chave pública para as outras pessoas criptografarem e só é possível descriptografar com a chave privada. Também posso criptografar com a chave privada, só que nesse caso para abrir é necessário a chave pública, mas isso é usado para outra coisa.

Segue um exemplo de criptografia simétrica, utilizando o algoritmo Blowfish:

[code]//geração da chave
KeyGenerator keygen = KeyGenerator.getInstance(“Blowfish”);
SecretKey skey = keygen.generateKey();
byte[] encodedKey = skey.getEncoded();

	//encriptação
	SecretKeySpec skeySpec = new SecretKeySpec(encodedKey, "Blowfish");        
	Cipher cipher = Cipher.getInstance("Blowfish");        
	cipher.init(Cipher.ENCRYPT_MODE, skeySpec);        
	byte[] encrypted = cipher.doFinal("Teste para ver se funciona!".getBytes());
	System.out.println("cifrado (string): " + new String(encrypted));
	
	//decriptação
	Cipher cipherDec = Cipher.getInstance("Blowfish");
	cipherDec.init(Cipher.DECRYPT_MODE, skeySpec);
	byte[] decrypted = cipherDec.doFinal(encrypted);
	System.out.println("decifrado " + new String(decrypted));[/code]

marcio_gs muito bom valeu pela ajuda