>  기사  >  Java  >  Java에서 3DES를 사용하여 성공적인 암호화 및 암호 해독을 보장하는 방법은 무엇입니까?

Java에서 3DES를 사용하여 성공적인 암호화 및 암호 해독을 보장하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-16 05:50:02296검색

How to Ensure Successful Encryption and Decryption with 3DES in Java?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.