ホームページ > データベース > 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スペース?

答え:

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート