2017-01-10 9 views
0

SHA-512を使用してトークンをハッシュすると、128文字の文字列になります。どのようにして短くてもURLを安全にするようにエンコードすることができます( '+'や '&'のようにエスケープする必要はありません)?URL安全のためにハッシュをエンコードし短縮する方法は?

HexとBase32はどちらも最適ではなく、Base64は安全ではありません。私はカスタムBase62コーデックをハックアップしたくない。それはメンテナンスの負担にしかならないからだ。

答えて

1

Java 8で追加されたBase64エンコーダは、さまざまな味です。例えばjava.util.Base64

を参照してください:

Base64.getUrlEncoder().encode(...); 
+0

Whaddayaは、あなたが正しい、知っています! Googleの方が優れています(エンコード/デコードのカプセル化、StringではなくCharSequence)。もちろん、組み込みのものを使用します。 –

1

Googleはあなたがカバーしている:

com.google.common.io.BaseEncoding#base64Url 

は、これが唯一のURLセーフ文字を使用して効率的にBase64コーデックです。 SHA512ハッシュの長さが88文字のStringを生成します。

関連する問題