コンパクト UUID ストレージの Base64 エンコーディング
質問:
保存に問題はありますか最小化するために末尾の「==」文字を削除したbase64文字列としてのUUIDスペース?
答え:
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 中国語 Web サイトの他の関連記事を参照してください。