1

nodejsである種のリダイレクターを作成しています。userid // superid のような値がいくつかあります

これらをハッシュして、ユーザーがURLを取得して他の人のURLを偽造するのを防ぎ、base64エンコードして、作成されたURLの長さを最小限に抑えたいと考えています。

http://myurl.com/~hashedtoken ハッシュされていないハッシュトークンは、次のようになります 55q322q23 55 = userid

私は暗号ライブラリを次のように使用することを考えました:

crypto.createHash('md5').update("55q322q23").digest("base64");

u/mxNJQaSs2HYJ5wirEZOQ== ここでの問題は、Web セーフとは見なされない / があるため、文字の base64 リストから安全でない文字をなんとかして取り除きたいということです。これについてのアイデア、または目前の問題に対するより良い解決策はありますか?

4

2 に答える 2

1

Base64 のいわゆるURL セーフバリアントを使用できます。RFC 4648 で説明されている最も一般的なバリアントは、それぞれ and の代わりに and を使用し-_パディング+文字/( =) を省略します。

Base64 のほとんどの実装では、この URL セーフ バリアントもサポートされていますが、サポートされていない場合は、手動で簡単に行うことができます。

于 2013-07-14T16:54:58.293 に答える