집 >데이터 베이스 >MySQL 튜토리얼 >Base64 인코딩은 컴팩트 UUID 스토리지를 위한 효율적인 방법입니까?
컴팩트한 UUID 스토리지를 위한 Base64 인코딩
질문:
저장에 문제가 있나요? 최소화하기 위해 후행 "==" 문자가 제거된 base64 문자열인 UUID space?
답변:
Base64 인코딩은 가독성을 유지하면서 UUID 크기를 효과적으로 최소화할 수 있습니다. 그러나 원래 UUID를 복구하려면 문자열을 올바르게 디코딩하는 것이 중요합니다.
Java의 실제 구현은 다음과 같습니다.
import org.apache.commons.codec.binary.Base64; public class UUIDBase64 { public static String uuidToBase64(String uuid) { UUID myUUID = UUID.fromString(uuid); ByteBuffer bb = ByteBuffer.wrap(new byte[16]); bb.putLong(myUUID.getMostSignificantBits()); bb.putLong(myUUID.getLeastSignificantBits()); return new Base64().encodeBase64URLSafeString(bb.array()); } public static String uuidFromBase64(String base64UUID) { Base64 base64 = new Base64(); byte[] bytes = base64.decodeBase64(base64UUID); ByteBuffer bb = ByteBuffer.wrap(bytes); UUID myUUID = new UUID(bb.getLong(), bb.getLong()); return myUUID.toString(); } }
사용법:
String uuid = "6fcb514b-b878-4c9d-95b7-8dc3a7ce6fd8"; String base64UUID = UUIDBase64.uuidToBase64(uuid); System.out.println("Base64 UUID: " + base64UUID); String decodedUUID = UUIDBase64.uuidFromBase64(base64UUID); System.out.println("Decoded UUID: " + decodedUUID); System.out.println("Equal?: " + uuid.equals(decodedUUID));
이 접근 방식은 후행 "==" 패딩을 제거하여 다음과 같은 압축된 22자 문자열을 생성합니다. 원래 UUID로 쉽게 디코딩할 수 있습니다.
위 내용은 Base64 인코딩은 컴팩트 UUID 스토리지를 위한 효율적인 방법입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!