Created
April 22, 2020 15:21
-
-
Save alexishida/771ea30ea6338541b38c835c1f543c83 to your computer and use it in GitHub Desktop.
Classe de uso para criptogradar e descriptografar dados em JAVA
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| Classe de uso para criptogradar e descriptografar dados | |
| Autor: Alex Ishida | |
| Data: 14/04/2020 | |
| Exemplo de uso | |
| final String secretKey = "3213215421356513213"; | |
| String originalString = "Frase para criptografar"; | |
| String encryptedString = AES.encrypt(originalString, secretKey) ; | |
| String decryptedString = AES.decrypt(encryptedString, secretKey) ; | |
| System.out.println(originalString); | |
| System.out.println(encryptedString); | |
| System.out.println(decryptedString); | |
| */ | |
| import java.io.UnsupportedEncodingException; | |
| import java.security.InvalidKeyException; | |
| import java.security.MessageDigest; | |
| import java.security.NoSuchAlgorithmException; | |
| import java.util.Arrays; | |
| import java.util.Base64; | |
| import javax.crypto.BadPaddingException; | |
| import javax.crypto.Cipher; | |
| import javax.crypto.IllegalBlockSizeException; | |
| import javax.crypto.NoSuchPaddingException; | |
| import javax.crypto.spec.SecretKeySpec; | |
| public class AES { | |
| private static SecretKeySpec secretKey; | |
| private static byte[] key; | |
| public static void setKey(String myKey) | |
| { | |
| MessageDigest sha = null; | |
| try { | |
| key = myKey.getBytes("UTF-8"); | |
| sha = MessageDigest.getInstance("SHA-1"); | |
| key = sha.digest(key); | |
| key = Arrays.copyOf(key, 16); | |
| secretKey = new SecretKeySpec(key, "AES"); | |
| } | |
| catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { | |
| e.printStackTrace(); | |
| } | |
| } | |
| public static String encrypt(String strToEncrypt, String secret) | |
| { | |
| try | |
| { | |
| setKey(secret); | |
| Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); | |
| cipher.init(Cipher.ENCRYPT_MODE, secretKey); | |
| return Base64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes("UTF-8"))); | |
| } | |
| catch (UnsupportedEncodingException | InvalidKeyException | NoSuchAlgorithmException | BadPaddingException | IllegalBlockSizeException | NoSuchPaddingException e) | |
| { | |
| System.out.println("Error while encrypting: " + e.toString()); | |
| } | |
| return null; | |
| } | |
| public static String decrypt(String strToDecrypt, String secret) | |
| { | |
| try | |
| { | |
| setKey(secret); | |
| Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING"); | |
| cipher.init(Cipher.DECRYPT_MODE, secretKey); | |
| return new String(cipher.doFinal(Base64.getDecoder().decode(strToDecrypt))); | |
| } | |
| catch (InvalidKeyException | NoSuchAlgorithmException | BadPaddingException | IllegalBlockSizeException | NoSuchPaddingException e) | |
| { | |
| System.out.println("Error while decrypting: " + e.toString()); | |
| } | |
| return null; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment