データベースから暗号化された値を読み取る必要がある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. Javaの「ANSI定数」
- 2. JavaスイングのテキストフィールドのANSIカラー
- 3. ANSI CのJavaへのポインタ
- 4. Java AWTコンポーネントとパネルのパディング/ボーダー
- 5. ansi Cのテンプレート?
- 6. ANSI端末
- 7. ANSIグラフィックコードとPython
- 8. ANSIプロジェクトのSetWindowTextW
- 9. SQL ServerでANSIパディングがデフォルトで有効になっているのはなぜですか?
- 10. pcks5パディング
- 11. PopupWindowパディング -
- 12. PHP Ansi to UTF-8
- 13. ANSI SQLの質問
- 14. UNIX_TIMESTAMP()のANSI標準
- 15. 読むとANSI形式
- 16. ANSI Cのドキュメントコメントを書くには?
- 17. Python Tkinterパディング問題
- 18. Java GridLayoutでマージンとパディングを使用する方法
- 19. アンドロイド:imageViewパディング
- 20. パディングNSStringの
- 21. HTML5プレースホルダCSSパディング
- 22. UITabBar selectionIndicatorImageパディング
- 23. ブラックベリーフィールドのパディング
- 24. セレクトボックスでのパディング
- 25. NSTableViewのパディング
- 26. クロスブラウザのパディング/マージン
- 27. インフォボックスのパディング左
- 28. サムネイルスクロールマージン(パディング)問題
- 29. Textviewレスポンスマージン/パディング
- 30. ANSI C Bluetooth APIとチュートリアルLinux
私は簡単にBouncy Castle APIを見て、JCEプロバイダがそれをサポートしているかどうかを確認しましたが、私は十分に見苦しくはありませんでした。 – laz