問題タブ [apache-commons-codec]
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.
android - Android の Apache Commons Codec: メソッドが見つかりませんでした
今日、Android アプリケーションに apache.commons.codec パッケージを含めようとしましたが、実行できませんでした。Android はメソッド ord.apache.commons.codec.binary.* を見つけられず、DDMS で次のエラーを出力できませんでした
01-12 08:41:48.161: エラー/dalvikvm(457): メソッド com.dqminh.app.util.Util.sendRequest から参照されるメソッド org.apache.commons.codec.binary.Base64.encodeBase64URLSafeString が見つかりませんでした
01-12 08:41:48.161: WARN/dalvikvm(457): VFY: 静的メソッドを解決できません 10146: Lorg/apache/commons/codec/binary/Base64;.encodeBase64URLSafeString ([B)Ljava/lang/String;
01-12 08:41:48.161: WARN/dalvikvm(457): VFY: オペコード 0x71 を 0x0004 で拒否
この問題を解決する方法の手がかりはありますか? どうもありがとう。
java - commonshttpクライアント-ネゴシエーション中のkerberosトークンに\r\ n(キャリッジリターンラインフィード)文字が含まれている
jakartacommonshttpクライアントを使用しようとしています。サーバーと通信するためにKerberos認証を実行します。認証は常に失敗します。深く掘り下げてみると、Kerberosトークンヘッダーにキャリッジリターンラインフィード文字が含まれていることがわかりました。これが問題の根本的な原因です。なぜ\r\ n文字が含まれているのですか、それが問題なのはなぜですか?
java - Commonsコーデックを使用するJavaで書かれたNetbeansプロジェクトがあります。次のエラーが発生します
問題は何ですか (パッケージ org.apache.commons.codec.binary.Base64 が存在しません)?
java - openssl 実装に一致する Java 文字列 base64 エンコード アルゴリズム
Google 検索アプライアンスで SAML AuthN を設定する際に、応答を base64 に変換する必要があります。概念実証のために、IntelliJ IDEA のデバッガーを使用して、文字列を openssl コマンドによって生成されたバージョンに置き換えました。
ここで、直接介入せずに機能するバージョンを取得する必要があります。私はApache commons base64コーデック ライブラリ (v. 1.4)、文字セット UTF-8、lineLength 64 を使用しています。コードは次のようになります。
結果は私が必要とするものに非常に近いです。Apacheライブラリが実行する直前に文字列でopenssl暗号化を実行すると(3行目が実行される前にsignedSamlResponseをコピーします)、2つの結果がほぼ同じであるdiffを実行します。唯一の違いは、最後の行の最後から 2 番目の文字であり、この違いはすべての試行で一貫しています。
Openssl バージョン:
アパッチのバージョン:
2 つの結果を一致させるには、バイト配列またはその元の文字列に何をする必要がありますか?
java - なぜapache-commonslibエンコーディングスペースを%20ではなく+として?
私はApacheCommonsCodecURLCodec
からURLをエンコードするために使用していますが、スペースを次のようにエンコードしていません+
%20
なぜ?そして解決策は何ですか?
android - Android アプリケーションで commonc コーデックを使用した場合の NoSuchMethodError
hereの指示に従って、Android アプリケーションの Eclipse に apache.org (commons-codec-1.4.jar) からコモンズ コーデックを追加しました。コードにエラーはありません。しかし、アプリケーションを実行してコーデックを使用する関数を呼び出すと、アプリケーションが停止し、フォア クローズが必要になります。
logCat には次のように書かれています。
Android ランタイム: java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64String
コードラインは次のとおりです。 String tmpStr = Base64.encodeBase64String(msg); //msg は byte[]
アプリケーションは最小 SDK バージョン = 7 (Android 2.1) 用であるため、Android Base64を使用できません
どうすれば問題を解決できますか?
java - Apache Commons 16 進エンコード エラー
org.apache.commons.codec.binary.Hexを使用して文字列値をエンコードおよびデコードしようとしています:
例えば:
ただし、これは 16 進数の出力ではなく、次のような出力になります。
[C@596d444a]
なぜこれが起こっているのですか?
java - Base64.decodeBase64 が機能しない (Commons コーデック)
ここで何が悪いのかわかりません。考えられるあらゆる組み合わせを試しました。文字セットを toString に設定し、toString を設定しません。エンコードは完全に機能します。その数値を Web デコーダーに投入して、毎回正しい値を取得できます。これを機能させることはできません。
出力:
for ループを使用して手動で文字列に文字を追加すると、機能させることができます。しかし、私はtoStringが私のためにそれをしたと思いましたか?
java - バイト配列に変換された同じバイト配列「オブジェクト」とは異なるバイト配列の 16 進エンコード形式。なんで?
この質問は、緊急の必要性ではなく、好奇心から尋ねられます。オブジェクトをバイト配列に変換するコードを見つけました (当時は必要だと思っていました)。
commons-codec を使用して、純粋なバイト配列のエンコードされた 16 進文字列表現が、以下の「toByteArray」メソッドを介してバイト配列を渡した場合に得られるものと異なることに気付きました。長いバージョンが 16 進文字列表現の短いバージョンで終わっていることに気付きました。
本能的にこれは正しくないように思えますが、なぜこれが起こるのでしょうか?
変換の「toByteArray」メソッドを介して検出された余分なバイトは何を表していますか?
エンコーディングと関係があると思いますか?
どうもありがとう、これが初心者の質問ではないことを願っています。
結果
537461636b6f766572666c6f77 aced0005757200025b42acf317f8060854e002000078700000000d537461636b6f766572666c6f77
java - JavaでのBASE64クラスのエンコード/デコードアルゴリズムはどのくらい効率的ですか?
アルゴリズムを使用して、XMLファイルから取得した可変長であるが非常に長い文字列フィールドをエンコードしようとしています。その場合、エンコードされたデータはデータベースに保持されます。
後で、2番目のファイルを受け取ったときに、エンコードされたデータをデータベース(以前に保存されたもの)からフェッチし、それをデコードして、新しいデータで重複を検証する必要があります。
org.apache.commons.codec.binary.Base64
私はそれが2つのメソッドを持っているクラスを試しました:
encodeBase64(Byte[] barray)
decodeBase64(String str)
これは完全にうまく機能し、私の問題を解決します。ただし、55文字の文字列を6文字の文字列に変換します。
したがって、これらのアルゴリズムが、非常に大きく、(たとえば)1文字の不一致しかない2つの文字列を同じエンコードされたバイト配列にエンコードする場合があるのではないかと思います。
私はクラスについてあまり知りBase64
ませんが、誰かが私を助けることができればそれは本当に役に立ちます。
大きな文字列を固定長より短くし、私の目的を解決する他のアルゴリズムを提案できれば、私はそれを喜んで使用します。
前もって感謝します。