問題タブ [evp-cipher]

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 投票する
1 に答える
148 参照

c - EVP_des_ofb()、openSSL、C によるテキストの暗号化と復号化による問題

OpenSSL ライブラリを使用して、DES-ofb (libcrypto) で txt ファイルを暗号化および復号化する必要があります。キーと初期化ベクトルは、1 つの bin.file(key+iv) で指定されます。しかし、EVP_DecryptUpdate() による復号化の後、復号化されたテキストとプレーン テキストはまったく似ていません。

解読の難しさ

だから私はplain.txt 8バイトと「keyandIV.bin」ファイルを読みました。keyandIVbuffer から最初の 8 バイトを DES の KEY として取得し、残りを IV として取得しました。したがって、8 バイトのキーと 8 バイトの IV があり、両方の末尾に '\0' が追加されています (ここで '\0' は必要ですか? キーの長さは 64 ビットまたは 56 ビットでなければなりませんか?)。

これは、DES ofb を使用した暗号化の私のコードです。

暗号化されたバッファを取得して復号化するよりも、次のようにします。

私は間違いなくDESの理解に問題があります。1 つのファイルからキーと IV を作成することで、何か問題があったのかもしれません。多くの例を見てきましたが、自分のプログラムで何が間違っていたのかまだわかりません。

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

c++ - ファイルの復号化時に OpenSSL EVP_DecryptFinal_ex が「間違った最終ブロック長」エラーを返す

このアルゴリズムを使用してEVP Symmetric Encryption and Decryption、テキスト ファイルを暗号化および復号化しています。

暗号化作業ファイル、新しい暗号化ファイルが生成されますが、ファイルを復号化しようとするEVP_DecryptFinal_exと、最初に呼び出されたときに常にクラッシュします。

2 つの Visual Studio プロジェクトを使用しています。1 つは暗号化用、もう 1 つは復号化用です。
私が使用しているライブラリは、DEBUG モードでビルドされていると思われます (.pdb ファイルがあるため)。それで、私のプロジェクトもビルドされます。(リリース モードを選択すると、コンパイラは openssl インクルード ヘッダーを見つけることができなくなります)。

これは私が得るエラーです:

私はC++ 11バージョンを使用しています。これが私のコードです:

また、パディングの問題である可能性があることも読みましたが、そうであるかどうか、どうすればよいかわかりません。私は暗号化が得意ではありません。

さらに進める方法についての指針は大歓迎です。さらに情報が必要な場合はお知らせください。

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

c - OpenSSL EVP C ライブラリと Python で生成された暗号文に違いがあるのはなぜですか?

生成された暗号テキストに違いが見られます(復号化も失敗しますが、それは別の話です-最初に暗号化された出力が正しく/期待どおりである必要があります)。Python (Pycryptodome) を使用して暗号化を実行したところ、タグと暗号化されたデータで異なる結果が得られました。OpenSSL ライブラリに必要なものを想定する際に、どこが間違っているのかわかりません。

わかりやすくするために、AES-256 GCM モードを使用しています。

このサイトも使用して、オンザフライで暗号化されたデータを生成しようとしましたが、aad の追加は許可されていませんが、暗号テキストは Python スクリプトで取得したものと一致します。

Cコード

追加の C コード

テスト用の Python コード

C からの暗号テキスト出力が次のように表示されます

しかし、Python のものは 522dc1f099566d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662 です。