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 中国語 Web サイトの他の関連記事を参照してください。