Lockbox 2の暗号テキストをLockBox 3の暗号テキストに変換する方法はありますか? Delphi 2007で構築されたアプリケーションをDelphi xe2に移行する際、Delphi 2007でLockbox 2 RSA Encryptionアルゴリズムを使用し、Delphi xe2でlockbox 3を使用してUnicodeデータをサポートする予定です。 Xe2がUnicodeデータをサポートしているため、両方で生成される暗号テキストが異なるため、問題に直面しています。そこで、Lockbox 2で生成された暗号文をLockBox 3に変換したいと考えています。Lockbox2の暗号テキストをLockbox3の暗号テキストに変換する
答えて
暗号テキストが定義されていないため、基礎となる平文データがAnsiまたはUnicodeであるかどうかを簡単に判断することはできません....したがって、新しい関連プロパティを管理する必要があります。
明らかに、アプリケーションのレイアウトと、このデータが格納されている場所とクライアントのアップグレード方法によって異なりますが、格納されている暗号文に関連付けられた新しいバージョンのフラグが存在する可能性があります。ローカルテーブルにある場合は、PlainTextVersionの新しい列を追加し、暗号文がUnicodeの平文から保存されたことを示すフラグをバージョンに設定します。暗号文を読み込み、この新しいフィールドがUnicdoeフラグと一致しない場合は、Unicode plaintextを使用して復号化および暗号化を行い、暗号文をアップグレードしてから、暗号文を再保存して新しいフラグを設定することができます(または、バージョンをアップグレードして平文が変更されるまで更新する必要があります)。
可能であれば、すべての現在の暗号テキストを一度に自動アップグレードすることをお勧めします。
変換するには、Lockbox 2を使用して暗号化テキストを復号化し、Lockbox 3を使用して再暗号化するのが最も簡単です。
私は、Lockbox 2はRSA block type 2パディングの実装を詰め込んだので、Lockbox 2のRSA暗号化は他の誰かのRSA解読と互換性がないということです。以下誤っよう
メッセージアウトロックボックス2のRSA暗号化パッド(ブレークポイントを配置しbiBlock.Fi.IntBuf.pBufのメモリを検査することによって見出される):
message-bytes 0x00 random-padding-bytes 0x02 0x00
例えば埋めた「試験」:(例えばこのworked exampleを見て)
$01C883AC 74 65 73 74 00 D4 50 50 test..PP
$01C883B4 A7 BO E5 51 7A 4C C2 BC ...QzL..
$01C883BC 8C B8 69 8A 97 DF AA 1D ..I.....
$01C883C4 78 67 1E OE 8B AB 02 00 xg......
しかし、それはにパディングする必要があります。
0x00 0x02 random-padding-bytes 0x00 message-bytes
ロックボックス2は、ちょうど(逆にバイトを格納していませんそれ以外の場合は、 "test"というメッセージも反転されます)、または32ビットのリトルエンディアンが反転されます(そうでなければ02 00もスワップされます)。 Lockbox 2を暗号化と復号化の両方に使用する限り、すべてが機能します。
また、Lockbox 2がe.RandomSimplePrime()を呼び出して公開指数eを生成する別のバグに気付きましたが、偶数、つまりRandomSimplePrime()ehのかなりのバグが生成されますか?私はLockbox 2.07だけを見ました。 Lockbox 3は完全な書き換えだったので、これらのバグはありません。
- 1. プロキシ再暗号化における暗号テキスト変換
- 2. rubyと暗号でファイル内のテキストを暗号化
- 3. J2MEテキスト暗号化 - javax.crypto.IllegalBlockSizeException
- 4. テキスト暗号化/復号化方法Java
- 5. DES暗号化からRSA暗号化への変換
- 6. IBMイメージ・サービスのテキストを暗号化/復号化する方法
- 7. RSAの暗号化ファイルやテキスト
- 8. Objective-CでSJCL暗号テキストを復号する
- 9. 暗号ブロックチェーンの復号XOR「暗号化」
- 10. PGP暗号化ファイルまたはテキスト?
- 11. python jsencryptで暗号化されたテキストの復号化
- 12. シーザー暗号暗号化Python
- 13. Laravel暗号化の暗号を変更します。
- 14. Wordの長さに応じてテキストを暗号化するプログラム
- 15. ユーザパスワードを暗号化する2ウェイ暗号化のハンドル/ストア暗号化キー
- 16. 良い暗号化/暗号化の本
- 17. シーザー暗号の暗号化VB.net
- 18. は、ネイティブリアクト持続し、暗号化ユーザートークン - Reduxの-存続・変換・暗号化エラー
- 19. Cプログラムの同じテキストを私に与える代用暗号
- 20. は暗号暗号を識別
- 21. ウェブページ上のテキストを暗号化する方法は?
- 22. JAVA - AESのWindowsユーザー名でテキストを暗号化する
- 23. Python:2つの異なるキーでDES-ECB暗号化を行うと、同じ暗号テキストが返される
- 24. シーザー暗号シンプルな暗号化コード
- 25. OpenAM:RESTFUL API - 暗号化/暗号化パスワード
- 26. 暗号
- 27. 暗号:
- 28. 簡易置換暗号
- 29. ランダム置換暗号(Python)
- 30. OpenSSL ECCを使用してテキスト文字列を暗号化/復号化する
暗号化されたパスワードやその他のデータが保存されていることを前提としています。あなたは秘密鍵を持っていて、解読と再暗号化ができます。その場合、なぜこの質問をしているのですか、秘密鍵を持っていないのですが、パスワードハッシュであり、平文は回復できません。いずれにしても、あなたはすでに答えを知っています。だからここで尋ねる理由は? –