問題タブ [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.

0 投票する
0 に答える
362 参照

delphi-10-seattle - LockBox 3 - PKCS パディングがサポートされていないようです

Lockbox 暗号コンポーネントを抽象化するクラス階層があります。具体的には、PKCS#5 パディングを使用した AES-265 に関心があります。

クラス インスタンスは CBC で正しく設定され、エンコーディングは明示的に ANSI に設定されていますが、結果の出力はスクランブルされています。つまり、パディングがオフになっています。残念ながら、CBC は複数のパディング スキームをサポートしていますが、Lockbox は必要なパディング スキームを使用していないと思います。

私が間違っているという考えはありますか?

これは、クラス階層の関連コードです。

コードは次のように使用されます。

何か案は?

0 投票する
0 に答える
309 参照

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

0 投票する
1 に答える
2637 参照

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 の簡単な例を次に示します。

復号化

誰にも提案はありますか?

ここに画像の説明を入力

0 投票する
1 に答える
1800 参照

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 暗号化を正しく取得する方法を知っていますか?.

ありがとうございました。

0 投票する
0 に答える
1094 参照

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」が表示され、解決方法がわかりません。何か案が?