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

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

Patricia Arquette
풀어 주다: 2024-12-27 09:00:17
원래의
353명이 탐색했습니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿