ビルドの日時や SVN リビジョンなどの特定の情報を可逆的な英数字の文字列にエンコードして、ビルドを簡単に識別できるようにしたいと考えています (既知のビルドのテーブルを維持することに加えて)。
どうすればいいのかわかりません。これに役立つ関連アルゴリズム、コマンドなどを教えてもらえますか?
ビルドの日時や SVN リビジョンなどの特定の情報を可逆的な英数字の文字列にエンコードして、ビルドを簡単に識別できるようにしたいと考えています (既知のビルドのテーブルを維持することに加えて)。
どうすればいいのかわかりません。これに役立つ関連アルゴリズム、コマンドなどを教えてもらえますか?
短すぎる必要がない場合は、Base64 エンコーディングを使用してください。
$ echo $(date +%s)-r3749 | base64
MTM1ODg4MzA3MS1yMzc0OQo=
$ echo MTM1ODg4MzA3MS1yMzc0OQo= | base64 --decode
1358883071-r3749
ここでは、完全な日付よりも文字数が少ないため、エポック時間を使用しました。これは数値であり、SVN リビジョンも数値であるため、別の基数を使用してエンコードすることもできます。この Base 62 エンコーディング関数を使用すると、(日付、リビジョン) ペア1358883071-r3749
を次のように可逆的にエンコードできます。1tXJyT,Yt
しかし、Base64 はおそらく十分に短く、非常に簡単です。