Java에서 3DES를 사용하여 텍스트를 암호화하고 복호화하는 방법
Java에서 Triple DES(3DES) 알고리즘을 사용하여 텍스트를 암호화하고 복호화할 때, 프로세스의 정확성을 확인하는 것이 중요합니다. 해독된 텍스트가 원래 문자열과 일치하지 않는 문제가 발생하는 경우 코드의 사소한 오류 때문일 가능성이 높습니다. 다음은 암호화와 암호 해독이 예상대로 작동하도록 보장하는 간결한 솔루션입니다.
아래 코드는 키 생성을 위해 MD5(Message Digest 5)를 사용하고 특정 알고리즘 매개변수로 Cipher 개체를 초기화합니다.
public static void main(String[] args) throws Exception { String text = "kyle boon"; byte[] codedtext = new TripleDESTest().encrypt(text); String decodedtext = new TripleDESTest().decrypt(codedtext); System.out.println(decodedtext); // Prints "kyle boon" }
public byte[] encrypt(String message) throws Exception { // Generate key bytes using MD5 digest MessageDigest md = MessageDigest.getInstance("md5"); byte[] digestOfPassword = md.digest("HG58YZ3CR9".getBytes("utf-8")); byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24); for (int j = 0, k = 16; j < 8;) { keyBytes[k++] = keyBytes[j++]; } // Create SecretKey and IvParameterSpec SecretKey key = new SecretKeySpec(keyBytes, "DESede"); IvParameterSpec iv = new IvParameterSpec(new byte[8]); // Initialize Cipher object Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, key, iv); // Encrypt plain text byte[] plainTextBytes = message.getBytes("utf-8"); return cipher.doFinal(plainTextBytes); }
public String decrypt(byte[] message) throws Exception { // Generate key bytes using MD5 digest MessageDigest md = MessageDigest.getInstance("md5"); byte[] digestOfPassword = md.digest("HG58YZ3CR9".getBytes("utf-8")); byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24); for (int j = 0, k = 16; j < 8;) { keyBytes[k++] = keyBytes[j++]; } // Create SecretKey and IvParameterSpec SecretKey key = new SecretKeySpec(keyBytes, "DESede"); IvParameterSpec iv = new IvParameterSpec(new byte[8]); // Initialize Cipher object Cipher decipher = Cipher.getInstance("DESede/CBC/PKCS5Padding"); decipher.init(Cipher.DECRYPT_MODE, key, iv); // Decrypt cipher text return new String(decipher.doFinal(message), "UTF-8"); }
암호화에 사용된 키가 복호화에 사용된 키와 일치하는지 확인하세요. 입력 문자열을 원본 문자열과 비교하여 정확하게 암호화 및 해독되었는지 확인합니다. 이러한 지침을 따르면 Java에서 3DES를 사용하여 텍스트를 성공적으로 암호화하고 해독할 수 있습니다.
위 내용은 Java에서 3DES를 사용하여 성공적인 암호화 및 암호 해독을 보장하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!