Ol\u00e1 amigos. Hoje falaremos sobre criptografia. H\u00e1 muitas hist\u00f3rias boas sobre isso e at\u00e9 filmes que mostram formas mirabolantes de criptografar e descriptografar dados. Aqui vamos aprender o b\u00e1sico sobre essa arte de esconder os dados sigilosos dos nossos sistemas.
\n N\u00e3o percam tamb\u00e9m a se\u00e7\u00e3o de links onde indicamos mais lugares onde voc\u00eas podem continuar a estudar o assunto!<\/p>\n
<\/p>\n
<\/p>\n
No exemplo abaixo mostramos como criptografar e depois descriptografar um texto qualquer.<\/p>\n
\r\npackage br.com.feltex.seguranca;\r\n\r\nimport java.security.InvalidKeyException;\r\nimport java.security.NoSuchAlgorithmException;\r\n\r\nimport javax.crypto.BadPaddingException;\r\nimport javax.crypto.Cipher;\r\nimport javax.crypto.IllegalBlockSizeException;\r\nimport javax.crypto.KeyGenerator;\r\nimport javax.crypto.NoSuchPaddingException;\r\nimport javax.crypto.SecretKey;\r\n\r\npublic class JCEEncryption {\r\n\r\n\tpublic static void main(String[] argv) {\r\n\r\n\t\ttry {\r\n\t\t\tKeyGenerator gerador = KeyGenerator.getInstance(\"DES\");\r\n\t\t\tSecretKey chaveDES = gerador.generateKey();\r\n\r\n\t\t\tCipher desCipher;\r\n\r\n\t\t\t\/\/Cria\u00e7\u00e3o do cipher que conter\u00e1 os objetos de criptografia\r\n\t\t\tdesCipher = Cipher.getInstance(\"DES\/ECB\/PKCS5Padding\");\r\n\r\n\t\t\t\/\/ Iniciando cipher para criptografia\r\n\t\t\tdesCipher.init(Cipher.ENCRYPT_MODE, chaveDES);\r\n\r\n\t\t\t\/\/Dados a serem cripografados\r\n\t\t\tbyte[] mensagemOriginal = \"Mensagem oculta!\".getBytes();\r\n\r\n\t\t\tSystem.out.println(\"Conte\u00fado byte: \" + mensagemOriginal);\r\n\t\t\tSystem.out.println(\"Conte\u00fado texto: \" + new String(mensagemOriginal));\r\n\r\n\t\t\t\/\/ Excriptando os dados\r\n\t\t\tbyte[] mensagemCriptografada = desCipher.doFinal(mensagemOriginal);\r\n\r\n\t\t\tSystem.out.println(\"Conte\u00fado criptografado : \" + mensagemCriptografada);\r\n\r\n\t\t\t\/\/ Iniciando o chipher para realizar a descriptografia\r\n\t\t\tdesCipher.init(Cipher.DECRYPT_MODE, chaveDES);\r\n\r\n\t\t\t\/\/ Texto a ser descriptografado\r\n\t\t\tbyte[] textoDescriptografado = desCipher.doFinal(mensagemCriptografada);\r\n\r\n\t\t\tSystem.out.println(\"Texto Descriptografado: \" + new String(textoDescriptografado));\r\n\r\n\t\t} catch (NoSuchAlgorithmException e) {\r\n\t\t\tSystem.err.println(\"N\u00e3o foi poss\u00edvel localizar o algor\u00edtmo de criptografia!\" + e.getMessage());\r\n\t\t\te.printStackTrace();\r\n\t\t} catch (NoSuchPaddingException e) {\t\t\t\r\n\t\t\tSystem.err.println(\"O mecanismo de preenchimento solicitado n\u00e3o existe no ambiente (Sistema Operacional)!\" + e.getMessage());\t\t\t\r\n\t\t\te.printStackTrace();\r\n\t\t} catch (InvalidKeyException e) {\r\n\t\t\tSystem.err.println(\"Chave inv\u00e1lida!\" + e.getMessage());\r\n\t\t\te.printStackTrace();\r\n\t\t} catch (IllegalBlockSizeException e) {\r\n\t\t\tSystem.err.println(\"Tamanho do bloco da mensagem inv\u00e1lido!\" + e.getMessage());\r\n\t\t\te.printStackTrace();\r\n\t\t} catch (BadPaddingException e) {\r\n\t\t\tSystem.err.println(\"Preenchimento incorreto de dados!\" + e.getMessage());\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n\t}\r\n}\r\n<\/pre>\nConclus\u00e3o<\/H2>
\n Ent\u00e3o amigos. Essa \u00e9 uma das formas que podemos criptografar dados. Em alguns sistemas existem dados sens\u00edveis que precisamos armazenar em bases de dados e depois devemos recuper\u00e1-los e exibir para os usu\u00e1rios. Esta \u00e9 uma das formas! E por hoje \u00e9 s\u00f3! Vida que segue.<\/p>\n
Links relacionados<\/H2><\/p>\n
Para saber tudo sobre criptografia em Java<\/a><\/p>\nExemplos de uso de criptografia<\/a><\/p>\n