SHA-512を使用してトークンをハッシュすると、128文字の文字列になります。どのようにして短くてもURLを安全にするようにエンコードすることができます( '+'や '&'のようにエスケープする必要はありません)?URL安全のためにハッシュをエンコードし短縮する方法は?
HexとBase32はどちらも最適ではなく、Base64は安全ではありません。私はカスタムBase62コーデックをハックアップしたくない。それはメンテナンスの負担にしかならないからだ。
SHA-512を使用してトークンをハッシュすると、128文字の文字列になります。どのようにして短くてもURLを安全にするようにエンコードすることができます( '+'や '&'のようにエスケープする必要はありません)?URL安全のためにハッシュをエンコードし短縮する方法は?
HexとBase32はどちらも最適ではなく、Base64は安全ではありません。私はカスタムBase62コーデックをハックアップしたくない。それはメンテナンスの負担にしかならないからだ。
Java 8で追加されたBase64エンコーダは、さまざまな味です。例えばjava.util.Base64
を参照してください:
Base64.getUrlEncoder().encode(...);
Googleはあなたがカバーしている:
com.google.common.io.BaseEncoding#base64Url
は、これが唯一のURLセーフ文字を使用して効率的にBase64コーデックです。 SHA512ハッシュの長さが88文字のStringを生成します。
Whaddayaは、あなたが正しい、知っています! Googleの方が優れています(エンコード/デコードのカプセル化、StringではなくCharSequence)。もちろん、組み込みのものを使用します。 –