問題タブ [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.
c# - CryptoStream Read を停止すると、Bad Data 例外が発生します
CryptoStream Decryptor に問題があります。別のスレッドでファイルを復号化しています。だからここに問題があります:
ファイルを最後まで復号化すると、すべて問題ありませんが、グローバル変数を使用してスレッドを停止し、while ループから抜け出すと、
で不良データ例外が発生しますcryptostream Dispose()
。
私が間違っていることは何ですか??
これが私のコードです:
c# - C# cryptoStream.Read エラー
こんにちは、C# プログラマーです。C# を使用して DLL を構築し、VBS スクリプトで VBS ファイルを暗号化および復号化しようとしています。
私のコードはこれです:
したがって、Encrypt と Decrypt を使用して文字列をデコードおよびデコードしようとすると、正常に動作します。
しかし、EncryptBytes と DecryptBytes を使用してファイルを暗号化し、暗号化されたファイルを復号化しようとすると、次のコード行にエラーが発生します。
何か案は?ありがとう
dll を呼び出す Ps VBS コードは次のとおりです。
c# - StreamReader をサブクラス化して、復号化ファイル ストリーム リーダーを作成します。
StreamReader をサブクラス化することで、復号化されたファイル ストリーム リーダー (DFSR) クラスを作成しようとしています。これにより、暗号化された情報を含むファイル名をその (DFSR) コンストラクターに渡し、StreamReader の ReadLine メソッドで呼び出すことができる streamReader を返すことができます。
以下のように行う方法は知っていますが、StreamReaderを親クラスとするクラスに屈折させる方法がわかりません。
c# - Base64 - StreamWriter と Convert.ToBase64String() を使用した CryptoStream
アレクセイからのフィードバックに続いて、質問を単純化します。
Convert.ToBase64String() を使用せずに、CryptoStream (ToBase64Transform を使用) の内容を StreamWriter (Unicode エンコーディング) に変換するために、バッファリングされた Stream アプローチを使用するにはどうすればよいですか?
注: Convert.ToBase64String() を呼び出すと OutOfMemoryException がスローされるため、変換にはバッファー/ストリーム アプローチが必要です。
c# - バイト配列での AESManaged の使用
インメモリ AESManaged 暗号化/復号化を実装しようとしています。ここでのコードはこれに基づいています。
暗号化部分は機能しているようです。つまり、例外はありません。しかし、復号化部分は「インデックスが配列の境界外でした」というエラーをスローします。
以前のコードでは、変換は次のように初期化されます。
問題のある行は次のようです: using (CryptoStream cryptoStream = new CryptoStream(destination, transform, CryptoStreamMode.Write))
c# - .NET CryptoStream を取得して最後のブロックを読み取る方法
両端でTcpClientのNetWorkStreamの周りにCryptoStreamを使用してクライアント/サーバーをセットアップしています。NetworkStream から直接読み取ると、通信は双方向でうまく機能しますが、CryptoStream を使用すると、利用可能なデータの単一ブロックを読み取ることができません。私はCryptoStreamを閉じて、FlushLastBlockがサーバーから呼び出されるようにしています。実際、16バイトの唯一のブロック(AES暗号化)がクライアント側に表示されます。では、利用可能な完全なデータ ブロックがあるのに、CryptoStream.Read() ブロックがデータを待機するのはなぜでしょうか?
PS追加のブロックを送信すると、リーダーが最初のブロックを読み取ることができることを確認しました。これは単なるバグですか、それとも仕様ですか?
sql-server - C# SQL Server EncryptByPassPhrase からバイトを復号化しますか?
C# でT-SQL DecryptByPassPhrase をレプリケートした後、MSSQL で単純な暗号化を取得して C# で復号化することができません。テーブルは定期的に Excel と Access にエクスポートされるため、特定の列の暗号化された値が必要です。開発者がビューなどを (再) 実行する必要がなく、単純な暗号化で値を "ブロック" するのに十分です。
SQL Server 2012 の場合:
C# の場合:
動作する C# コードはどのように見えるべきですか?
ありがとう。
c# - 1 つの NetworkStream に 2 つの CryptoStream ?
この概念は単純に思えます: 2 つの別個のアプリケーションを作成し、暗号化されたテキストをクライアントからサーバーに送信し、サーバーからクライアントに応答を送信します。単純に 2 つのアプリケーション間で TcpClient 接続を確立し、NetworkStream を取得できると仮定しました。その NetworkStream で 2 つの CryptoStreams を使用します (1 つは読み取り用、もう 1 つは書き込み用)。ただし、以下の例 (主に MSDN の例に基づいています) では、テキストを暗号化し、サーバーに送信し、復号化して表示することができますが、サーバーが応答しようとすると、「Unable to write data to theトランスポート接続...」。StreamWriter が閉じられたときに、基になるストリームが閉じられている可能性がありますか? ところで、この概念は、NetworkStream 自体がネイティブに双方向であるため、NetworkStream 自体を介して暗号化されていないテキストを送信する場合に問題なく機能します。
編集:CryptoStream を閉じると、他のすべても閉じられるようです。クライアントがメッセージを送信した後にサーバーで sendReply() を手動で呼び出すと、サーバーは正常に応答します (クライアントで NetworkStream が閉じられていない限り)。次に、サーバーは「トランスポート接続からデータを読み取ることができません: WSACancelBlockingCall の呼び出しによってブロック操作が中断されました。」をスローします。SReader.Readline で。複数の CryptoStreams が機能しているように見えるので、実際の問題は、サーバーが読み取りを停止するタイミングを認識していないことです。それを治す方法もわかりません。メッセージに "\r\n" を追加して ReadLine() を使用しても解決しないようです。
サーバ:
クライアント: