>데이터 베이스 >MySQL 튜토리얼 >Base64 인코딩은 컴팩트 UUID 스토리지를 위한 효율적인 방법입니까?

Base64 인코딩은 컴팩트 UUID 스토리지를 위한 효율적인 방법입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-27 09:00:17356검색

Is Base64 Encoding an Efficient Method for Compact UUID Storage?

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

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