>데이터 베이스 >MySQL 튜토리얼 >Base64 인코딩을 사용하여 UUID 저장소를 어떻게 최적화할 수 있습니까?

Base64 인코딩을 사용하여 UUID 저장소를 어떻게 최적화할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-20 09:52:10362검색

How Can I Optimize UUID Storage Using Base64 Encoding?

Base64를 사용하여 최적화된 UUID 저장소

UUID를 base64로 변환하고 후행 "=="를 제거하는 원래 접근 방식은 22바이트 결과를 가져옵니다. 끈. 이는 공간을 절약하는 기술이지만 잠재적으로 UUID의 가독성과 호환성을 손상시킬 수 있습니다.

보다 강력한 접근 방식은 UUID를 압축된 base64 표현으로 변환하는 것을 지원하는 UUID 라이브러리를 사용하는 것입니다. 이러한 라이브러리는 불필요한 패딩이나 후행 문자 없이 UUID의 최상위 및 최하위 비트를 base64 문자열로 인코딩합니다. 이 방법은 일반적으로 사람이 읽을 수 있는 UUID 형식을 유지하면서 약 26~30자의 문자열을 생성합니다.

이러한 라이브러리의 예로는 다음 기능을 제공하는 Apache Commons Codec이 있습니다.

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

private static String uuidToBase64(String str) {
    Base64 base64 = new Base64();
    UUID uuid = UUID.fromString(str);
    ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
    bb.putLong(uuid.getMostSignificantBits());
    bb.putLong(uuid.getLeastSignificantBits());
    return base64.encodeBase64URLSafeString(bb.array());
}

private static String uuidFromBase64(String str) {
    Base64 base64 = new Base64(); 
    byte[] bytes = base64.decodeBase64(str);
    ByteBuffer bb = ByteBuffer.wrap(bytes);
    UUID uuid = new UUID(bb.getLong(), bb.getLong());
    return uuid.toString();
}

이 접근 방식을 사용하면 무결성과 호환성을 유지하면서 바이트 수를 줄인 UUID를 base64 문자열로 변환할 수 있습니다.

위 내용은 Base64 인코딩을 사용하여 UUID 저장소를 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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