問題タブ [base64]
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.
regex - Base64 データを解析または検証する正規表現
RegEx を使用して Base64 データを検証またはサニタイズすることは可能ですか? それは単純な質問ですが、この質問を難しくしている要因があります。
RFC 仕様に従うために入力データに完全に依存できない Base64 デコーダーがあります。したがって、私が直面している問題は、おそらく 78 に分割されない可能性のある Base64 データのような問題です (78 だと思います。RFC を再確認する必要があるため、正確な数が間違っていても気にしないでください)。行、または行が CRLF で終わっていない可能性があります。つまり、CR または LF のみを含むか、どちらも含まない可能性があります。
だから、私はそのようにフォーマットされたBase64データを解析するのにかなりの時間を費やしました. このため、次のような例は確実にデコードできなくなります。簡潔にするために、部分的な MIME ヘッダーのみを表示します。
わかりました。解析は問題なく、まさに期待どおりの結果です。そして、99% のケースで、任意のコードを使用して、少なくともバッファー内の各文字が有効な base64 文字であることを確認すると、完全に機能します。しかし、次の例では問題が発生しています。
この Base64 エンコーディングのバージョンは、一部のメール リーダーを利用しようとする一部のウイルスやその他のもので見られたバージョンであり、厳密に書籍または RFC に従っているものとは対照的に、すべての犠牲を払って MIME を解析したいと考えています。もしよろしければ。
私の Base64 デコーダーは、2 番目の例を次のデータ ストリームにデコードします。ここで、元のストリームはすべて ASCII データであることを覚えておいてください。
一度に両方の問題を解決する良い方法はありますか? 異なるルールを適用してデータに2つの変換を行い、結果を比較する以外に、それが可能かどうかさえわかりません。しかし、そのアプローチを採用した場合、どのアウトプットを信頼しますか? ASCII ヒューリスティックが最善の解決策であるように見えますが、このコードが実際に関与しているウイルス スキャナーのような複雑なものに、コード、実行時間、および複雑さがどれだけ追加されるのでしょうか? Base64 で許容できるものとそうでないものを学習するには、ヒューリスティック エンジンをどのようにトレーニングしますか?
アップデート:
この質問が引き続き取得するビューの数に合わせて、数十万のトランザクションで C# アプリケーションで 3 年間使用してきた単純な RegEx を投稿することにしました。正直なところ、Gumboからの回答が一番気に入っているので、選択した回答として選択しました。しかし、C# を使用していて、文字列または byte[] に有効な Base64 データが含まれているかどうかを少なくとも検出する非常に簡単な方法を探している人にとっては、次の方法が非常にうまく機能することがわかりました。
はい、これはBase64 データのSTRINGのためのものであり、適切にフォーマットされたRFC1341メッセージではありません。したがって、このタイプのデータを扱う場合は、上記の正規表現を使用する前にそのことを考慮してください。他の目的 (URL、ファイル名、XML エンコーディングなど) で Base16、Base32、Radix、さらには Base64 を扱っている場合は、Gumboが回答で言及したRFC4648を読むことを強くお勧めします。この質問/回答セットの提案を使用する前に、実装で使用される文字セットとターミネータを認識してください。
c# - Base64 C#でPDFをエンコードしますか?
誰かがこれを行う方法についていくつかの光を提供できますか? 通常のテキストまたはバイト配列に対してこれを行うことができますが、pdf にアプローチする方法がわかりません。最初にpdfをバイト配列に詰め込みますか?
encoding - VBScript の Base64 エンコード文字列
いくつかの VBScript および JavaScript ファイルを含む Windows スクリプト ファイル (WSF) である Web サービス ロード ドライバーがあります。私の Web サービスでは、受信メッセージが base64 でエンコードされている必要があります。私は現在、これを行う VBScript 関数を持っていますが、非常に非効率的です (主に VBScript のひどい文字列連結が原因で、メモリを大量に消費します)。
[さておき; はい、ジェフの最新のブログ投稿を見ました。連結は、サイズが 1,000 から 10,000 バイトのメッセージ全体のループで発生しています。]
カスタム文字列連結ルーチンをいくつか使用してみました。1 つは配列を使用し、もう 1 つは ADODB.Stream を使用します。これらは少し役立ちますが、自分の VBS 関数を使用するのではなく、メッセージをエンコードする別の方法があればもっと役立つと思います。
できればネイティブの Windows メソッドを使用して、メッセージをエンコードする他の方法はありますか?
xml - base64 データを XML に保存しますか?
base64 文字列を XML に格納するにはどうすればよいですか?
base64 文字列を XML に格納するために CDATA を使用していますか? 文字列内で < > を使用できるので、役に立ちますか?
XMLと競合する場合、特定の文字を使用しないように指示する場合、base64は構成可能ですか?
xml - 生のバイナリ ストリームを格納するために CDATA を使用しますか?
バイナリを Base64 として保存する際のオーバーヘッドの代わりに、CDATA を使用するかコメントアウトするなどして、2 バイトのバイナリ ストリームを XML ファイルに直接格納できるかどうか疑問に思っていました。
apache-flex - Flex 3 - HTTP 認証 URLRequest をサポートする方法は?
URLRequest を使用してファイルをサーバーにアップロードする Flex ファイル アップロード スクリプトがあります。http 認証 (サーバー上のパスワードで保護されたディレクトリ) のサポートを追加したいのですが、これを実装する方法がわかりません。クラスを何らかの方法で拡張する必要があると思いますが、その方法について少し迷っています。
以下を変更しようとしました (HTTPService を URLRequest に置き換えます) が、うまくいきませんでした。
私は ActionScript / Flex に関しては知識がないことを指摘しておく必要がありますが、アップロード スクリプトをある程度修正することに成功しました。
[編集] - 以下の回答に基づいた進行状況の更新を次に示しますが、まだこれを機能させることはできません。
ご協力いただきありがとうございます。あなたのコードを実装しようとしましたが、うまくいきませんでした。
HTTP認証された場所を扱うときに私が経験している一般的な動作は、IE7ではすべて問題ありませんが、FirefoxではファイルをサーバーにアップロードしようとするとHTTP認証プロンプトが表示されます.正しい詳細が与えられたとしても、単に停止しますアップロードプロセス。
IE7 が問題ない理由は、ブラウザーと Flash コンポーネントによって共有されるセッション/認証情報にあると思いますが、Firefox ではそうではなく、上記の動作が発生します。
あなたの変更を組み込んだ私の更新されたアップロード機能は次のとおりです。
上記のように、私は自分の機能の修正の有無にかかわらず、同じ結果を経験しているようです.
crossdomain.xml をどこに置くべきか尋ねてもよろしいですか。現在、crossdomain.xml を持っておらず、どこに置くべきかわからないためです。
php - Base 64 エンコードと画像ファイルの読み込み
だから私はphpで何かに取り組んでおり、base64でエンコードされるSQLデータベースから画像を取得する必要があります。これらの画像を表示する速度は非常に重要であるため、データベース データを画像ファイルに変換してからブラウザにロードするか、生の base64 データをエコーして使用する方が速いかどうかを調べようとしています。
これは、FireFox およびその他の Gecko ブラウザでサポートされています。
要約すると、実際の画像ファイルまたはbase64コードを転送する方が速いでしょうか。ajaxを使用して画像をロードする場合、必要なhttpリクエストは少なくなりますか?
画像は合計 100 ピクセル以下です。
database - データベースに画像を保存するのに最適な形式は何ですか?
最適な速度/サイズのために、バイナリ、base64などのデータベースに画像を保存するのに最適な形式は何ですか?
asp.net - RubyでASP.NETメンバーシップとユーザーパスワードハッシュを再実装する
ASP.NETアプリケーションからRubyonRailsアプリケーションに転送するユーザーの大規模なデータベース(〜200,000)があります。すべてのユーザーにパスワードのリセットを依頼したくないので、RubyでC#パスワードハッシュ関数を再実装しようとしています。
古い関数は次のとおりです。
ハッシュ化されたパスワードとソルトの例は次のとおりです(使用されたパスワードは「password」でした)。
ハッシュ化されたパスワード: "weEWx4rhyPtd3kec7usysxf7kpk ="ソルト: "1ptFxHq7ALe7yXIQDdzQ9Q =="パスワード: "password"
次のRubyコードを使用します。
正しいパスワードハッシュを取得していません(「weEWx4rhyPtd3kec7usysxf7kpk=」ではなく「+BsdIOBN / Vh2U7qWG4e + O13h3iQ =」を取得しています)。誰かが問題が何であるかを見ることができますか?
どうもありがとう
アーフォン
python - Pythonで整数を最短のURLセーフ文字列に変換するにはどうすればよいですか?
URLで整数を表す最短の方法が必要です。たとえば、11234は、16進数を使用して「2be2」に短縮できます。base64の使用は64文字のエンコーディングであるため、16進数よりもさらに少ない文字を使用してbase64で整数を表すことができるはずです。問題は、Pythonを使用して整数をbase64に(そして再び)変換する最もクリーンな方法を理解できないことです。
base64モジュールには、バイト文字列を処理するためのメソッドがあります。したがって、1つの解決策は、整数をPython文字列としてのバイナリ表現に変換することです...しかし、その方法もわかりません。