データベースから暗号化された値を読み取る必要があるjavaで書かれた新しいアプリケーションがあります。問題は、dbのすべての値が、ANSI x923パディングスキームを使用する.NETコードによって暗号化されていることです。私はいくつかの調査を行いましたが、Java TripleDesライブラリにこのパディングスキームを指定する方法がないように見えます。 ANSI x923がjavaでサポートされていないか、またはこれを動作させる方法があるかどうか誰にでも分かりますか?Java ANSI X923パディング
2
A
答えて
2
Bouncy Castle JCEを使用する場合、X923パディングがサポートされています。私は、SunのJCEがそれをサポートしているとは思わない、(あなたはCBCモードを使用すると仮定して)このよう
cipher = Cipher.getInstance("DESede/CBC/X9.23PADDING");
を暗号を得ることができます。しかし、パディングなしで単純に解読し、パディングを自分で削除することができます。 X9.23では、最後のバイトは追加されたパディングの数です。だからこのようなことをすることができます。
cipher = Cipher.getInstance("DESede/CBC/NOPADDING");
cipher.init(Cipher.DECRYPT_MODE, key, ivSpec);
int outSize = cipher.getOutputSize(cipherText.length);
plainText = new byte[outSize];
length = cipher.update(cipherText, plainText, 0);
cipher.doFinal(plainText, length);
//Remove padding
int newLen = plainText.length - (plainText[plainText.length-1] & 0xFF);
byte[] data = new byte[newLen];
System.arraycopy(plainText, 0, data, 0, newLen);
0
SunのドキュメントJCA Standard Algorithm Namesにある「暗号アルゴリズムパディング」のセクションにはパディングスキームは含まれていないため、サポートされていないようです。つまり、Bouncy Castleは、X9.23パディングのan implementationを提供しています。これは、外部ライブラリとJCAの範囲外のベンチャーを使用できる場合に直接使用できます。
関連する問題
- 1. ALTERでANSIパディングをオフに設定
- 2. Javaの「ANSI定数」
- 3. JavaスイングのテキストフィールドのANSIカラー
- 4. ANSI CのJavaへのポインタ
- 5. ANSI X9.19(小売MAC)のJava/C実装
- 6. Java AWTコンポーネントとパネルのパディング/ボーダー
- 7. ユニコードからANSI
- 8. セグメンテーションフォルト:ANSI C(C89)
- 9. ANSI端末
- 10. Python ANSIカラーコード
- 11. ANSIグラフィックコードとPython
- 12. ansi Cのテンプレート?
- 13. ANSIプロジェクトのSetWindowTextW
- 14. SQL ServerでANSIパディングがデフォルトで有効になっているのはなぜですか?
- 15. C++のPSK5パディング
- 16. パディング
- 17. 読むとANSI形式
- 18. Jinja2テンプレートのANSIエスケープシーケンス
- 19. PHP Ansi to UTF-8
- 20. ANSI SQLの質問
- 21. UNIX_TIMESTAMP()のANSI標準
- 22. ANSI Cのドキュメントコメントを書くには?
- 23. パディング私は、パディングとアンカーリンク持たボタン
- 24. pcks5パディング
- 25. PopupWindowパディング -
- 26. ANSI Select Count SQLStatementsのサポート
- 27. ANSI Cのビット操作ライブラリ
- 28. ANSI質問: "\ x1B [?25h"と "\ x1BE"
- 29. プロセスフィルタのansi-term/multi-termエラー
- 30. レガシーSQL外部JOIN * =、= *をANSI
私は簡単にBouncy Castle APIを見て、JCEプロバイダがそれをサポートしているかどうかを確認しましたが、私は十分に見苦しくはありませんでした。 – laz