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