問題タブ [base62]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
22 に答える
82125 参照

python - ベース62変換

整数を62進数に変換するにはどうすればよいですか(16進数のようですが、これらの数字は '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')。

私はそれに適したPythonライブラリを見つけようとしていますが、それらはすべて文字列の変換に専念しているようです。Python base64モジュールは文字列のみを受け入れ、1桁を4文字に変換します。私はURL短縮サービスが使用するものに似たものを探していました。

0 投票する
9 に答える
13510 参照

php - URLのMD5をbase62に変換します

ベース62(A-Za-z0-9)に変換するスクリプトがありますが、MD5から数値を取得するにはどうすればよいですか?

私は多くの場所で、MD5からの数値がphpが整数として処理できるよりも大きいため、不正確になることを読みました...とにかく短いURLが必要で、ハッシュ全体を使用する予定はなかったので、おそらく8文字だけです。それの....

だから私の質問は、MD5ハッシュの数の一部を取得する方法ですか?

また、MD5ハッシュの一部のみを使用するのは悪い考えですか?

0 投票する
6 に答える
8500 参照

php - PHP - ベース 62 まで base_convert() する方法

基数 2 から基数 62 まで機能する関数が必要base_convert()ですが、使用する必要がある数学がありません。PHP の制限により、bcmath を使用する必要があることはわかっています。これで問題ありません。

これらのような関数は、基数 10 から別の基数 62 までの間で数値を変換しますが、同じ機能を実装したいと思いますbase_convert()。たとえば、任意の基数間で変換できる関数は 1 つだけです。

これを行うと思われる関数を見つけましたが、冗長で遅いコードがあるように感じます。ドイツ語を知っていれば、少し調整したいと思います。=(

関数のより読みやすいバージョンを次に示します。

上記の関数を説明したり、任意のベース間の直接変換のプロセスについて説明したりできますか?

0 投票する
1 に答える
1406 参照

sql - マルチベース変換 - URL 短縮サービスのすべての組み合わせを使用

URL 短縮サービスを作成していますが、数値 (id) を文字列にエンコードする最適な方法に苦労しています。

文字 0-9、AZ、az を使用しているため、基本的に base-62 エンコーディングになります。これはかなり基本的なことですが、考えられるすべてのコードを利用しているわけではありません。生成されるコードは次のとおりです。

コード 00 から 0z は使用されないことに注意してください。000 から 0zz も同様です。次のように、すべてのコードを使用したいと思います。

base-62 と base-63 の組み合わせで、位置に応じて異なる base になります... base-62 の使用は簡単です。たとえば、次のようになります。

しかし、すべてのコードを利用するために、それを多塩基変換することはまだできていません。

0 投票する
1 に答える
1764 参照

ruby-on-rails - RailsアプリでIDを難読化する

サーバーを離れるすべてのID、つまりURLとHTML出力に表示されるIDを難読化しようとしています。

エンコードとデコードのメソッドを持つ単純なBase62ライブラリを作成しました。ActiveRecordのidメソッドを定義して、エンコードされたバージョンのidを返すように上書きし、コントローラーを調整して、デコードされたリソースをロードするとparams[:id]、目的の結果が得られます。IDはURLでbase62エンコードされ、応答には正しいリソースが表示されます。

has_many今、私は関係を通して定義されたサブリソースがロードされていないことに気づき始めました。Userたとえば、私はそれと呼ばれるレコードを持っていhas_many Postます。が付いた投稿がありますが、現在User.find(1).postsは空user_id = 1です。私の説明では、ActiveRecordは、と比較するのuser_idではなく、のメソッドと(私が上書きPostした)メソッドを比較する必要があります。つまり、基本的にこれは私のアプローチを役に立たなくします。 idUserself[:id]

私が欲しいのはobfuscates_id、モデルで定義するようなもので、残りは処理されます。つまり、適切な場所ですべてのエンコード/デコードを実行し、サーバーからIDが返されないようにします。

利用可能な宝石はありますか、または誰かがこれを達成するためのヒントを持っていますか?私はこれを最初に試したのではないに違いない。

0 投票する
4 に答える
154 参照

jquery - さまざまなケースで物事を選択するのに問題があるjQuery

注: あなたが「ただの」jQuery 開発者である場合、この投稿の一部は少し複雑に見えるかもしれません (Base62 エンコーディングなど) - 実際はそうではありません。より技術的な詳細は質問に関連していますが、核心はjQueryが大文字のものを選択しないということです。ありがとう!

こんにちは皆さん!

だから私はAjaxによって生成されたリストを持っています。リストのタイトルをクリックすると、その ID が送信され、リスト アイテムがその横に表示されます。標準的なもの。

auto_increment ID を使用しているため、ユーザーにデータベース内の送信数を知られたくありません。そのため、Base62 にエンコードしてから、再度デコードしています。[これは問題とは無関係であることに注意してください]

私のリストが生成されると、このコードが出力されます。jQuery と一緒に CodeIgniter PHP を使用しています - これはデータベース結果のループにあります。$this->basecrypt->encode()は、整数 (ID) を Base62 に変換する単純な CI ライブラリです。

そして、ページのさらに下に:

ご覧のとおり、これはすべて同じループで生成されます。出力されたソース コードを表示すると、次のようになります。

$('#title-1T').click[...]その後<div id="title-1T" [...]

つまり、jQuery には何の問題もないはずですよね? ID の Base62 化を開始するまでは、すべて正常に機能していました。大文字が含まれている場合、jQueryはIDを選択できない/選択しないと思います

私が間違っていたら許してください-私は比較的言えば、jQueryにかなり慣れていません-しかし、私のポイントをテストするために、私$this->basecrypt->encode()はBase36に変更しました。以前、使用していた0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 後、使用していた0123456789abcdefghijklmnopqrstuvwxyz

大文字がない場合、jQuery は正常に選択 (およびテスト目的でアラートを表示) できます。

それで、なにかお手伝いできますか?Base36 で数字と小文字だけを使い続けても安全ですか?そうでない場合、jQuery の問題のある選択プロセスについて何ができますか?

ありがとう!

ジャック

編集:以下に、ページのコード例をいくつか示します。

これは、ファイル ajaxlist.php で返されるスクリプトの一部です。これは Ajax から呼び出され、ページが読み込まれた数秒後に表示されます。最初のすぐ近くに追加してalert("clicked");、それが表示されるかどうかを確認しましたが、残念ながら表示されません... $(document).ready(function() {

上記のコード (そのすぐ下) と同時に、同じファイルから返されるのは次のとおりです。

これで問題が解決する場合は、お知らせください。


編集 2:実際の出力がブラウザに返されます。

これは Firebug から取得したもので、ブラウザーに返されたデータ (Ajax) です。

さあ、それがうまくいかないと言うことはできません... できますか?!

0 投票する
3 に答える
3310 参照

c++ - C ++でmd5文字列をbase 62文字列に変換する

md5 文字列 (base 16) を c++ で base 62 文字列に変換しようとしています。base 62 に変換するためにこれまでに見つけたすべてのソリューションは、数値を 64 ビット整数以下で表すことができる場合にのみ機能します。md5 文字列は 128 ビットで、私はこれでどこにも行きません。

bigint ライブラリをインクルードして、それで終了する必要がありますか?

0 投票する
4 に答える
1610 参照

php - このベース62のPHP変換関数/アルゴリズムについて説明してください

誰かが以下のコードを説明できますか?それか、いくつかの光を当てるいくつかのリソースを私に指摘してください:)

整数をbase62文字列に変換します。

更新:私が尋ねるつもりだったもの:誰かが以下のアルゴリズムを説明できますか?:) ありがとう。

0 投票する
7 に答える
28069 参照

python - Python でソルトを作成する

Pythonでランダムな16文字のbase-62ソルトを作成するにはどうすればよいですか? プロトコルに必要ですが、どこから始めればよいかわかりません。ありがとう。

0 投票する
4 に答える
1548 参照

algorithm - この URL 短縮サービスの難読化アルゴリズムは機能しますか?

免責事項: URL 短縮サービスの作成方法を尋ねているわけではありません ( base-62 でエンコードされた文字列を使用するHEREにある「全単射関数」の回答を既に実装しています)。代わりに、この実装を拡張して、生成された文字列を難読化し、両方になるようにしたいと考えています。

A) 簡単に推測できないシーケンス、および

B) まだ全単射。

base-62 文字セットは簡単にランダム化できますが、問題は、他の基数の他の数値と同じように増加することです。たとえば、考えられる漸進的進行の 1 つは次のようなものです。{aX9fgE, aX9fg3, aX9fgf, aX9fgR, … ,}

要件A)に関しては満足している難読化手法を思いつきましたが、それがB)を満たすかどうかは部分的にしか確信が持てません。アイデアは次のとおりです。

インクリメンタル アプローチで確実に変更されるのは、「1 の位」だけです (実用上の理由から、10 進数の用語を使用します)。前に示した進行例では、それは{E, 3, f, R, …}. したがって、base-62 セットの各文字に固有のオフセット番号 (たとえば、「ゼロ文字」からの距離) がある場合、「1 の位」文字のオフセットを残りの文字列に適用できます。

たとえば、ベース 5 の文字セット{A, f, 9, p, Z, 3}(0 から 5 までの昇順) を想定してみましょう。それぞれに、それぞれ 0 から 5 の一意のオフセットがあります。カウントは次のよう{A, f, 9, p, Z, 3, fA, ff, f9, fp, …}になります。したがって、アルゴリズムは、 の値が与えられると、 andfZ3pを見て、p+3 のオフセットを持ち、文字列を次のように並べ替えますZf9p(基数 5 のセットが循環配列であると仮定します)。次の増分番号は でfZ3ZZのオフセットが +4 の場合、アルゴリズムは を返します39pZこれらの並べ替えられた結果は、実際のbase-62 でエンコードされた文字列を見ることのない「一意の URL」としてユーザーに渡されます。

このアプローチは確かに元に戻せます。最後の文字を見て、負のオフセットで同じ順列を実行します。そして、この理由から、それはまだ全単射でなければならないと考えています。しかし、これが必ずしも正しいかどうかはわかりませんか?私が考慮していないエッジ/コーナーケースはありますか?

編集:私の意図は、パターンのセキュリティよりも短縮URLの長さに重きを置いています。暗号化機能、ブロック暗号などを含む多くのソリューションがあることを認識しています。しかし、私はA)を達成するための最善の方法を尋ねているのではなく、「私のオフセットアプローチはB)を満たすか」ということを強調したいと思います。

あなたが見つけることができる任意の穴をいただければ幸いです。