問題タブ [rijndael]

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

c# - Rijndael 復号化を実装するときに IV を使用しないことは可能ですか?

Rijndael のアルゴリズムを使用して暗号文の復号化を実装しています。残念ながら、私はデータの暗号化にアクセスできず、(キーを生成するための) パスワードとアルゴリズムの種類しか提供されていません。

私は塩を持っていません(大丈夫だと思われます)、そして私はIVを持っていません. さて、私の質問は、復号化を実行するために絶対に IV が必要かどうかです。暗号化を作成した開発者は、salt または IV を使用していなかったのではないかと思います (これが可能な場合でも)。

IV を null に設定しようとしましたが、うまくいきませんでした。Rijndael インスタンスを生成すると、デフォルトの IV が作成されます。これにより、復号化後にプレーンテキストの最初の 16 文字が歪んでいます。

IVの効果を無効にする方法はありますか?または、暗号化に使用された IV を取得する必要がありますか?

0 投票する
2 に答える
4364 参照

php - .Net と PHP Rijndael 暗号化が一致しない

mcryptはゼロパディングを使用するため、最初はパディングだと思っていましたが、phpを変更してPKCS7を使用し、まったく同じ結果を得ました

誰でも助けることができますか?PHPのパディングと関係があると思います

.Net からのテスト出力:

PHP からのテスト出力:

PHP:

VB .Net:

0 投票する
2 に答える
1868 参照

vb.net - 暗号化 - 対称鍵

暗号化には Rijndael (AES アルゴリズムとして) を使用しています。値 (オブジェクトのプロパティ) を暗号化し、オブジェクトを xml にシリアル化し、Web サービスを介して xml をレシーバーに送信します。データの暗号化に使用した暗号化された対称キーを渡したいです。しかし、どのキーを渡す必要がありますか? 私の復号化アルゴリズムは次のようになります(vb.net):

暗号化された文字列を復号化したい場合は、キーと IV の両方を使用する必要がありますが、キーの値のみを渡す必要があると思います。これを別の方法で行う必要がありますか、それとも何を渡す必要がありますか? 私の仕様によると、値は AES と 128 ビット キーを使用して暗号化する必要があります。

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

.net - Rijndaelアルゴリズムを使用してファイル暗号化のためにIV情報を埋め込む適切な場所はどこですか?

Rijndaelファイル暗号化アプリケーションを作成しています。ファイルの暗号化ごとに一意のIVを使用します。

私の質問:IV情報を埋め込むための適切な場所はどこですか?

私の最初の考えは、ファイルのコンテンツの最後にそれを追加することです。それは良い選択ですか?私にとって他のより良いオプションはありますか?

0 投票する
2 に答える
721 参照

.net - Rijndael 暗号化コードが大きなファイルに対して機能しないのはなぜですか?

以下の Rijndael コードを使用して、何度も確実に暗号化を行っています。しかし、4.2 GB の ISO ファイルを暗号化できないのはなぜですか? 実際、私のコンピュータには 16GB のメモリが搭載されており、メモリの問題ではないはずです。Windows 7 Ultimate を使用しています。コードは、Visual Studio 2010 (VB.NET プロジェクト) を使用して winform (.Net 4) としてコンパイルされます。

ISO ファイルに問題がなく、仮想ドライブとしてマウントでき、DVD ROM に書き込むこともできることを確認しました。したがって、ISO ファイルの問題ではありません。

私の質問: なぜ次のコードが 4.2GB のサイズの ISO ファイルを暗号化できないのですか? これは、Windows/.NET 4 実装の制限によるものですか?

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

php - 暗号化/ハッシュの問題

セッションを使用せずにユーザーのログインを検証するために、比較的安全な情報を Cookie に保存できるようにする小さなスクリプトに取り組んでいます。出力の一部は、Cookie に格納されている一部の情報とデータベース内の一部のユーザー情報を使用して hmac_hash を生成するときに使用する暗号化されたソルトです。

ただし、いくつかのテストの後、文字列の暗号化/復号化の問題に遭遇し、異なるハッシュ結果が発生しました。

すなわち:

そして私は

しかし、両方の文字列をエコーすると、両方とも 123456abcdef になります。

do_encrypt 関数は次のとおりです。

do_decrypt 関数:

どちらの関数でも、$ek は別のファイルから取得した暗号化キーです。

表示される文字が同じである理由を理解しようとしていますが、実際の変数は異なります (それ以外の場合、ハッシュ結果は同じになります)。ハッシュの目的で両方の文字列が同一であることを確認する方法はありますか?

ありがとう、ライアン。

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

c - CLibmcryptは正常に暗号化/復号化できません

私はcでlibmcryptを使用しており、選択したアルゴリズムとしてrijndael-256を使用して、暗号化と復号化の簡単なテストを実装しようとしています。このテストの実装は、選択したアルゴリズムとは対照的に、rijndaelを使用したmanページの例に非常によく似ています。文字列gcc-oencoding_test main.c -lmcryptを使用してコンパイルすると、次のソースコードは次のような出力を生成します。暗号化されたメッセージバッファにはj��A��8�qj��%`��jh���=ZЁが含まれます �j元の文字列は��m"�C��D�����Y�G�v6��s��zh�</p>でした

明らかに、復号化部分は失敗していますが、これは単一の関数呼び出しであるため、暗号化スキームも正しく動作していないと私は信じています。あなたが私を正しい方向に向けることができれば、私はそこにあるlibmcryptの達人にいくつか質問があります。

まず、このコードがこの壊れた出力を生成する原因は何ですか?

次に、キーサイズやブロックサイズなどの必須の固定サイズを処理する場合、たとえば256ビットキーは、32バイトのキー+末尾のnullバイト、31バイトのキー+末尾のnullを予期しますか?バイト、または33バイトが無関係な32バイトのキー?同じ質問がブロックサイズにも当てはまります。

最後に、私が指摘した例の1つは、暗号化呼び出しに提供するキーテキストのハッシュを生成するためにmhashを使用しました。これはもちろん望ましいですが、コメントアウトされており、mhashでのリンクは失敗しているようです。libmcryptを使用するときに、このタイプのキー変換を処理するために受け入れられている方法は何ですか?すでに壊れているコードがさらに複雑になるのを防ぐために、このような複雑さを省くことを選択しましたが、これを最終的な設計に組み込みたいと思います。問題のソースコードは次のとおりです。

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

php - JavaScriptでPHPAES/CBC暗号化文字列を復号化します

次のコードスニペットを使用してPHPで暗号化された文字列をJavaScriptで復号化しようとすると、文字通り夢中になります。

私はslowAES、gibberish-aes、およびその他の利用可能なJSライブラリを試しましたが、常に1つの文字列を正しく復号化できませんでした。

SOでも広範囲に検索しましたが、自分の状況に適した解決策を見つけることができませんでした。

適切な解決策へのポインタは大歓迎です!

ありがとう、アレッサンドロ

0 投票する
2 に答える
11848 参照

java - Rijndael と 256 ビットのブロックサイズで暗号化または復号化する方法は?

特定の理由により、128 ビットのブロック サイズを使用する AES の代わりに、256 ビットのブロック サイズで Rijndael 圧縮解除を実装する必要があります (理由: データは PHP で Rijndael を使用して暗号化されます...)。

暗号のブロックサイズを変更するにはどうすればよいですか?

暗号を取得し"RIJNDAEL/CFB/PKCS5Padding"て IV を 256 ビットで初期化しようとすると、ブロックサイズが 128 ビットしかないため、例外が発生します。

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

java - CFBモード、256ビットのブロックサイズおよびBouncycastleでRijndaelを暗号化するにはどうすればよいですか?

私はrijndael(キーサイズ256ビット、ブロックサイズ256ビット、CFBモード)で文字列を暗号化しようとしています。現在、次のようなことをしています。

自分のものをうまく暗号化および復号化できます。残念ながら、私が解読しなければならない文字列は、phpのmcryptから来ています。

この文字列を復号化できません。失敗は私の側にあると思います。必要なパラメータを使用して暗号を構成する方法の例を教えてもらえますか?

編集:

こことphpドキュメントのコメントでいくつかのアドバイスに従ってください。サイファーを次のように変更しました。

それでも暗号化には互換性がありません。

編集2

CBCモードで動作するようになりました。問題はivのどこかにあると思います。