[java] Apache Commons Codec 주요 기능

Apache Commons Codec는 자바에서 문자열을 인코딩, 디코딩하고 해시 등 다양한 암호화 기능을 제공하는 라이브러리입니다. 이번 포스트에서는 Apache Commons Codec의 주요 기능에 대해 알아보겠습니다.

1. Base64 인코딩 및 디코딩

Apache Commons Codec는 Base64 인코딩과 디코딩을 지원합니다. Base64는 이진 데이터를 문자열로 변환하는 인코딩 방식으로, 데이터를 안정적으로 전송하거나 저장하기 위해 주로 사용됩니다.

import org.apache.commons.codec.binary.Base64;

String originalText = "Hello, world!";
byte[] encodedBytes = Base64.encodeBase64(originalText.getBytes());
String encodedText = new String(encodedBytes);

System.out.println("Encoded text: " + encodedText);

byte[] decodedBytes = Base64.decodeBase64(encodedText.getBytes());
String decodedText = new String(decodedBytes);

System.out.println("Decoded text: " + decodedText);

2. 해시 알고리즘

Apache Commons Codec는 다양한 해시 알고리즘을 지원합니다. 해시 알고리즘은 입력값을 고정된 길이의 고유한 해시값으로 변환하는 알고리즘으로, 암호화나 데이터 무결성 검증 등에 사용됩니다.

import org.apache.commons.codec.digest.DigestUtils;

String originalText = "Hello, world!";
String sha256Hash = DigestUtils.sha256Hex(originalText);

System.out.println("SHA-256 hash: " + sha256Hash);

String md5Hash = DigestUtils.md5Hex(originalText);

System.out.println("MD5 hash: " + md5Hash);

3. URL 인코딩 및 디코딩

Apache Commons Codec는 URL 인코딩과 디코딩을 지원합니다. URL 인코딩은 URL에 사용되는 특수문자나 공백 등을 안전하게 전송하기 위해 문자열을 변환하는 것을 말합니다.

import org.apache.commons.codec.net.URLCodec;

String originalText = "Hello, world!";
URLCodec urlCodec = new URLCodec();

String encodedText = urlCodec.encode(originalText);
System.out.println("Encoded URL: " + encodedText);

String decodedText = urlCodec.decode(encodedText);
System.out.println("Decoded URL: " + decodedText);

4. 암호화 및 복호화

Apache Commons Codec는 암호화와 복호화를 위한 기능을 제공합니다. 다양한 알고리즘을 지원하며, 비밀키를 사용하여 데이터를 안전하게 암호화하고 복호화할 수 있습니다.

import org.apache.commons.codec.binary.Hex;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.codec.digest.Crypt;

String originalText = "Hello, world!";
String salt = "somesalt";

// MD5 암호화
String md5Hash = DigestUtils.md5Hex(originalText);
System.out.println("MD5 hash: " + md5Hash);

// Crypt 암호화
String cryptHash = Crypt.crypt(originalText, salt);
System.out.println("Crypt hash: " + cryptHash);

// Hex 인코딩
String hexEncodedText = Hex.encodeHexString(originalText.getBytes());
System.out.println("Hex encoded text: " + hexEncodedText);

결론

Apache Commons Codec는 자바에서 문자열 인코딩, 디코딩, 해시, 암호화 등 다양한 암호화 기능을 제공합니다. 이를 활용하여 데이터 처리에 유용한 기능을 쉽게 구현할 수 있으며, 표준 라이브러리로 자주 사용되고 있습니다.

참고: Apache Commons Codec 공식 문서