問題タブ [cryptostream]

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 に答える
333 参照

vb.net - FlushFinalBlock アプリケーションを閉じる

CryptoStreamアプリで暗号化されたテキストを復号化するために使用しています。しかし、ストリームから最後のブロックをフラッシュするか、それを閉じる (同じことを行う必要があります) ところまで来ると、アプリは閉じます。

エラーメッセージはありません。デバッグモードでもそのまま終了。Windows イベント ビューアーでは、.NET Runtime version 2.0.50727.5485 - Fatal Execution Engine Error (000007FEECCD600A) (80131506). アプリでフレームワーク 2.0 をターゲットにしています。

これが私のコードです:

に置き換えdecStream.FlushFinalBlock()てみましdecStream.Close()たが、同じ結果になりました。コメントアウトすると、返される文字列には 8 文字の倍数しか含まれません。その最後のブロックに詰まった残りは消えます。

だから私は、最後のストリームを取得するとアプリケーションがシャットダウンする理由を理解しようとしています。ソースの場所にブレークポイントを設定し、F11 キーを使用してそこにステップ インしましたが、シャットダウンはすぐに行われます。

Windows 7 Professional 64 ビットで VS 2008 を使用しています。

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

c# - c# で暗号ストリームの書き込み操作に進行状況バーを追加するにはどうすればよいですか

プロジェクトの一環としてファイルを暗号化および復号化するプログラムに取り組んでいます。プログラムは単独では正常に動作していますが、進行状況バーを追加して暗号化/復号化プロセスの進行状況を表示しようとすると、問題が発生します。プログレス バーは 85 ~ 90% までかなり順調に進み、その後、値が上限を超えたというエラーがスローされます。また、バーの進行が遅すぎます。16KB のファイルを暗号化していても、エラー状態になるまでに約 15 ~ 20 秒かかります。プログレス バーなしで完了すると、ほとんど時間がかかりません。バックグラウンドワーカーを使用してプログレスバーを実装しようとしました。私のプログラムでプログレスバーを動作させる方法を誰か教えてもらえますか?

暗号化プロセスのコードは次のとおりです。

Prompt は、ユーザーにパスワードの入力を求める動的フォームを生成するために作成した別のクラスです。パスワードを入力して確認するための 2 つのフィールドと、パスワードを表示するチェックボックスを備えた、通常のパスワード プロンプトとほとんど同じように見えます。ifile は入力ファイルであり、ofile は出力ファイルです。

更新:バックグラウンドワーカーで試したコードは次のとおりです。プログレス バーは機能しているように見えますが、暗号化速度が大幅に低下し、プログレス バーがいっぱいになる前に暗号化プロセスが完了します。つまり、プログレス バーがいっぱいになる前に「暗号化完了」メッセージが表示されます。また、復号化のために同じことをしようとすると、暗号ストリームがシークをサポートしていないという例外が発生します。何か案は?

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

c# - CryptoStream の先頭に cleartext バイトを追加しますか?

私は次のように定義されたインターフェースを持っています:

このインターフェイスを で実装していますが、AesCryptoServiceProvider明らかに問題があります。IV (初期化ベクトル) はインターフェイスで返されません... そのため、暗号化を再度解読したくない限り、何かを暗号化しても問題ありません。Decrypt() メソッドが機能する可能性はまったくありません。

私がやりたいことは、ストリームの先頭に IV をクリアテキストで含めてから、それに追加するCryptoStreamことです。これは、本質的には「ヘッダー」を含む暗号化されたデータであり、それを取り除いてストリームの復号化に使用できます。

それで...どうすればいいですか?CryptoStream は十分に簡単に作成できますが、これは IV を暗号化するように見えますが、これは目的に反しています。をメモリにロードしCryptoStream、IV を先頭に追加して、それを MemoryStream としてストリーミングすることもできますが、これは非常に非効率的であり、大きなストリームでは機能しなくなります。

このための優れた、安全でスケーラブルなプラクティスは何ですか?

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

c# - 同じ CryptoStream で BinaryReader と BinaryWriter を使用しているときにタイムアウトを回避するにはどうすればよいですか?

BinaryReaderBinaryWriterを使用してstringint、およびbyte [] メッセージをネットワーク経由で送信するプログラムがあります。

メッセージの順序と内容は、サーバーとクライアントの両方での実行の流れにとって重要ですが、期間が長くなることはありません。

今、私はすべてを暗号化しようとしています。

これは、実際のコードの周りにある新しいラッパーです。

この例は boo コードですが、この例では直感的に C# と同等である必要があります。

ここで起こることは、サーバーが最初の暗号化されたメッセージを で正しく取得しenc_reader.ReadString()、 で応答することenc_writer.Write("Accepted")です。しかし、クライアントは決して答えを得ることはありません。

メッセージの順序が重要かどうかをテストしましたが、そうです。サーバーから文字列を送信することから始めると、クライアントはそれを取得しますが、メッセージを送信し続けると、すぐに同じ状況になります。

CryptoStream がBinaryReader / BinaryWriterと適切に連携していないことに責任があるのではないかと考えていますが、この混乱をうまく整理する方法がわかりません。

私のサーバーには、BinaryReaderBinaryWriterを期待するだけの関数がたくさんありますが、以前のように機能すると非常に便利です。

編集:

また、CTR モードを使用した AES の前述の実装を使用して、小さな C# プロジェクトhereで状況を再現しました。

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

c# - Rijndael クラスに値を設定するとプログラムがクラッシュする

現在、次のコードがあります。

byte arrayハードコードされた random から を生成していstringます。

Rijndaelクラスを設定するときに、キー値を設定するときにアプリケーションがクラッシュすることに気付きました。キー値が設定されているときにクラッシュする理由に関する提案。

上記のメソッドが呼び出されると、以下のようになります

追加情報では、それは述べています

追加情報: 指定されたキーは、このアルゴリズムに対して有効なサイズではありません。

その場合、どの文字列を使用できますか? この文字列が機能しないのはなぜですか?

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

c# - cryptostream での暗号化に使用できる最大の信頼できるバッファ サイズは?

プロジェクトでこの暗号化方式を使用したいと考えています。ただし、例によると、一度に1バイトずつ読み取り、暗号化してから書き込みますが、これは非効率的です。CryptoStream クラスを見ると、バッファをストリームに読み書きするメソッドがあります。私が求めているのは、一度に複数のバイトを暗号化/復号化することが安全/信頼できるかどうかです。

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

c# - CryptoStream を使用した TCP ソケットの読み取りと書き込み

TCP 接続を介して送信するデータを暗号化しようとしていますが、CryptoStream.

ストリームを設定するクラスは次のとおりです。

キーと初期ベクトル:

私のテストクライアントプログラムで私は呼び出します

そして、私のサーバーで私は呼び出します:

ただし、アプリケーションはブロックされcommunication.Receive、決して終了しません。ここで何が間違っていますか?私はそれが本当に単純なもののように感じます..

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

java - 暗号化アルゴリズムを C# から Java に変換する

次のアルゴを Java で変換したいのですが、ライブラリを検索しましたが、何も取得できませんでした。助けてください。?