問題タブ [lockbox-3]
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.
delphi-10-seattle - LockBox 3 - PKCS パディングがサポートされていないようです
Lockbox 暗号コンポーネントを抽象化するクラス階層があります。具体的には、PKCS#5 パディングを使用した AES-265 に関心があります。
クラス インスタンスは CBC で正しく設定され、エンコーディングは明示的に ANSI に設定されていますが、結果の出力はスクランブルされています。つまり、パディングがオフになっています。残念ながら、CBC は複数のパディング スキームをサポートしていますが、Lockbox は必要なパディング スキームを使用していないと思います。
私が間違っているという考えはありますか?
これは、クラス階層の関連コードです。
コードは次のように使用されます。
何か案は?
delphi - Delphi LockBox3、Asymetric_Engine.createFromStream エラー
編集:このコードを機能させることができなかったため、少し回避策を講じました:ShellExecuteを介してopensslコンソールを呼び出します(あまり安全ではありませんが、機能します)。
おはようございます。この Delphi コードを機能させるために頭痛がしています。
問題は「signatory.LoadKeysFromStream(keyStream,[partPublic]);」です。手順は引き続き「ストリーム エラー」例外で失敗します。ファイルは読み取りモードで正しく開いています。
公開鍵ファイルの内容は
(私は完全な鍵を持っていますが、私は漏らしたくないです)
誰でも私を助けることができますか?pkcs#1 padding と openssl コマンドについて読みました (Lockbox 3 load public key not possible - stream reading error )
しかし、「-RSAPublicKey_out」は認識されません (OpenSSL 0.9.8zh 2016 年 1 月 14 日)。私も秘密鍵を持っています。
私を助けることができるすべてに感謝します!
更新:暗号化キーも生成しようとしましたが、それらを読み取ることができません。
結果は同じです。
ここでライブラリをダウンロードしました: https://github.com/TurboPack/LockBox
php - Delphi/PHP LockBox 暗号化 AES ECB
この質問にはいくつかのバリエーションがありますが、問題を突き止めることができませんでした。PHP と Delphi で暗号化/暗号化解除しようとしています Delphi でいくつかの設定を見逃していて、UTF-8 と関係があると思います
http://aesencryption.net/を PHP の例として使用して、取得しようとしている結果を示します。イメージ ブロー
パスワード = 123
キー = テスト
128 ビット
uuIikEZSC9Sa1HAt/XKfGQ== に暗号化
Delphi でこれを暗号化解除できるようにしたいhttps://github.com/SeanBDurkin/tplockboxで Delphi XE5
を
使用しています
Delphi 内で暗号化/DeCrypt を動作させることはできますが、PHP 暗号化バージョン文字列は異なります
Delphi は 123 を vpdeLlfnxTGrSsa2TpbFvg== に暗号化します
Delphi Encrypt の簡単な例を次に示します。
復号化
誰にも提案はありますか?
delphi - Delphi 10.1 Berlin を使用して 3DES で文字列を暗号化する
Delphi で 3DES を使用して 10 バイトの文字列を暗号化する必要があります。
次の PHP コードと同じ結果が得られるはずです。
DCPCrypt と LockBox 3 を使用してコーディングしようとしていました。DCPCrypt は最近更新されておらず、Delphi 10.1 Berlin で正しく動作するかどうかわからないため、最終的に破棄しました。そのため、LockBox 3 に焦点を当てましたが、暗号化を正しく行うことができませんでした。
暗号化キーは 24 バイトのキーです (私はこれを base64 で表現しています)。LockBox の TSymetricKey クラスを使用してそのようなキーを作成し、それを Codec.Init メソッドに渡す方法が見つかりません。そこで、それを AnsiString に配置し、Password プロパティに設定しました (ただし、ドキュメントには utf8Password があると記載されていますが、見つかりません)。
次に、EncryptAnsiString というメソッドがありますが、これも AnsiStrings ではなく文字列 (Delphi 10.1 Berlin では utf16) を想定しているため (ドキュメントには反対のことが書かれています)、結果が私が探しているものと一致しないことに驚きはありません。 for (その PHP スニペットで暗号化された同じ値)。
これは私の Delphi コードです:
しかし、このコードは PHP コードと同じ結果を得られないだけでなく、呼び出しのたびに同じ入力に対して異なる結果を返します。
注: Codec1 は TCryptographicLibrary コンポーネントにリンクされたコンポーネントであり、ChainMode プロパティが CBC* に設定され、Cipher が 3DES (キーイング オプション 1) に設定されています。
誰かがこの 3DES 暗号化を正しく取得する方法を知っていますか?.
ありがとうございました。
android - Delphi LockBox 3 の使用: Android デバイスと通信するには?
Delphi XE8 と LockBox 3 を暗号化に使用して RESTful サーバーを構築しています。AES を使用してデータ (JSON) を暗号化し、それを Android デバイス (クライアント) に送信します。
暗号化されたデータをクライアントに送信し、クライアントが暗号化キーを知っている場合、LB3 によって内部的に自動管理されているため、IV を知らずにデータを復号化するにはどうすればよいでしょうか?
Delphi XE8を使用しています
最初: LockBox の最新バージョンをインストールしました。
2 番目: IV の設定方法に関するドキュメントはありません。
IV (暗号文からの最初の 8 バイト) を取得することができました。
例 (128):
クライアント側 (Android) では、「Bad base 64」または「復号化で最後のブロックが不完全です」というエラーが表示されます。これが私のコードです (テスト専用です)。
[IVをゼロで完成させます]
これを Android で実行すると、「復号化が不完全な最後のブロック」が表示され、getBytes() から「UTF-8」を削除すると、「悪い base-64」が表示され、解決方法がわかりません。何か案が?