問題タブ [base85]
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.
encoding - バイナリ データを ascii チャネル経由で送信する必要がある場合、どのテキスト エンコーディング スキームを使用しますか?
エンコードする必要があるバイナリ データがある場合、どのエンコード スキームを使用しますか?
私は知っています:
- 16 進エンコーディング。非常に単純ですが、非常に冗長で、1 バイトを 2 に拡張します。
- ベース64。最も一般的ですが、それほど冗長ではありませんが、3 バイトを 4 に拡張します。
- ベース85。一般的ではなく、冗長ではありませんが、4 バイトを 5 に拡張します。
一般的に使用されている他のエンコード方式はありますか? もしそうなら、どのような利点と欠点がありますか?
編集: これは、たとえば、任意のデータを Cookie に保存しようとする場合に役立ちます。Cookie はテキストのみを保存でき、任意のデータは保存できないため、何らかの方法で、できれば元に戻す方法で変換する必要があります。さらに、ステートレス サーバーを使用しているため、状態をサーバーに保存できず、識別子を Cookie に入れるだけであるとします。もちろん、これを行う場合、ユーザーがあなたに返しているものが、たとえば署名など、ユーザーに渡したものであることを確認する何らかの方法も必要になります。
また、現在のコンセンサスは base64 が広く使用されているため使用する必要があるということなので、これが私が使用しているものであることも指摘します... 誰かが他のものを使用したかどうか、もしそうならその理由.
編集:誰かがこれに出くわした場合に備えて、Base64 を使用してデータを Cookie に保存する場合は、変更された Base64 実装を使用する必要があります。理由については、この回答を参照してください。
go - Ascii85 をデコードする長さを取得する
ascii85 には、エンコーディングの最大長を取得する機能がありますMaxEncodedLen()
。
Base64のようにデコード時に長さを取得する機能もあればいいと思います。
java - Base85 別名 ASCII85 Java プロジェクト
クラスのようなことをするcom.idataconnect.lib.ascii85codec Java プロジェクト以外について知っている人はいorg.apache.commons.codec.binary.Base64
ますか?
ios - iOS 用の ascii85/base85 エンコーダー/デコーダーはありますか?
base64 エンコーディングとデコーディングはもはや問題ではないようですが ...
誰かがascii85エンコーダー/デコーダーの実装を持っているか、ライブラリを知っていますか?
PS: BASE85 は RFC1924 などで使用されます。
php - 短い UUID、PHP の ASCII85
UUID v4について読みましたが、それは実質的に一意であり、それが必要です。問題は、数が多すぎることです。Facebook や Twitter のような UUID をより少ない文字数で生成することは可能ですか?
Ascii85でこのコードを20に縮小できる投稿を読みましたが、信頼できるPHPスクリプトが仕事をしているとは思えません。誰かがテストされたクラスを知っていますか?? ランダムIDの場合、この20文字を保存するのが最善の方法ですよね?
- - 編集 - -
@デビッド・シュワルツ
ありがとう。単一のサーバーに 8 ~ 16 文字のランダムな一意の識別子が必要です (最小の場合は 20 で問題ありません)。542A4B243J、C63426KJ70、O30V4U1I9Pなどのように、読み取り可能なIDでオブジェクトを識別しますが、インクリメンタルではありません(最初のオブジェクト10001、2番目のオブジェクト10002)。ID は、(少なくとも) 6 つの MySQL テーブルの主キーである必要があります。オブジェクトは、同じサーバーで PHP を使用して作成されます。
@ta.speot.is
私は「信頼できる PHP スクリプトが仕事をしているのを見ない。テスト済みのクラスを知っている人は??」と書いた。Google に表示されるすべてのコードがテストされているとは思いません。おそらくすべてのリンクをテストしましたか??
@サーノルド
ありがとうございます、すみません、よくわかりませんでした =(
java - Base85(Ascii85)エンコーダーのサポートが必要
Base85ASCIIエンコーダー/デコーダー
ここで最初の参照を探してください->> Base85Wikipediaページ
私はJava用のBase85エンコーダー/デコーダーを作成していますが、完全なエンコーダーからのプログラミングやコードに対する答えや解決策は必要ありません。コードからソースを提供することはできますが、この質問は概念を理解することを目的としているため、不要です。そのウィキペディアページで概説されているすべての手順を、基数10の32ビットの合計値が基数85に変換される32ビット値ポイントまで正常にコードに含めました。
こちらをご覧ください->> Base85エンコーディングテーブル
つまり、具体的には、番号1298230816を取得できましたが、今は困惑しています。上記のように基数85で表される数値を取得するにはどうすればよいですか?(24 * 85 ^ 4; 73 * 85 ^ 3; 80 * 85 ^ 2; 78 * 85; 61)。それらの値を見つけるために、どのような数学的プロセスを実行しますか?