問題タブ [rijndaelmanaged]
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.
.net - Rijndael または AES 暗号化では、値のソルティングは不可欠なグッド プラクティスですか?
.NET で Rijndael/AES 暗号化プロバイダーを使用して暗号化機能を実装しました。アルゴリズムの私の「理解」は、キーと IV が危険にさらされない限り、データは安全であることを示唆しています。ただし、パスワードのソルティングがベストプラクティスであるサイトをいくつか読んだことがあります。私にとっての混乱は、ハッシュ関数ベースの暗号化でのみソルティングが必要であると思われるところにあります。 Rijndael または AES を使用する場合のベスト プラクティスは何ですか? また、どの値をソルトする必要がありますか (クリア テキスト、キー、IV)?
.net - 新しいRijndaelManaged()の代わりにRijndael.Create()を使用しても安全ですか?
私はこのトピックについていくつか読んだことがありますが、私が見た答えにはまだ100%満足していません。
を使用して暗号化アルゴリズムを作成するRijndael.Create()
と、タイプのオブジェクトが取得されます。これと呼び出し(またはVBの人々)RijndaelManaged
の間に違いはないようです。:)new RijndaelManaged()
New RijndaelManaged()
私が読んだところによると、Rijndael.Create()
メソッドは存在するので、将来のバージョンで変更された場合に備えて、特定の実装について心配する必要はありません。しかし、私の質問は次のとおりです。それが発生し、.NET5.0が別の実装を返すと仮定します。RijndaelManagedを使用して暗号化されたアイテムが、を使用して問題なく復号化できるという保証はありSomeFutureRijndaelManaged
ますか?
互換性がないとは想像できませんが、確認したいだけです。
ありがとう
security - ファイルの復号化時のインデックスが範囲外です
ここで何が起こっているのか本当にわかりません。私のアプリはファイルを正しく問題なく暗号化していますが、同じファイルを復号化しようとすると IndexOutOfRangeException がスローされます...
これが私のコードです:
エラーがStream.Close()
行に表示されます。
同じコードを他の場所に適用しましたが、問題はありません...
ここに私のスタックトレースがあります:
System.IndexOutOfRangeException がキャッチされました Message="インデックスが配列の範囲外でした。"
Source="mscorlib" StackTrace: System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast) at System.Security.Cryptography .RijndaelManagedTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) System.Security.Cryptography.CryptoStream.FlushFinalBlock() で System.Security.Cryptography.CryptoStream.Dispose(Boolean disposing) で System.IO.Stream.Close () Crypt.EncryptDecrypt (文字列アクション、文字列 InFile、文字列 OutFile) で D:\Development\Projects\Web\WebSite1\App_Code\Crypt.vb:line 34 InnerException:
どんな助けでも大歓迎です。
EDIT 1 aazのコメントの後、修正して置き換えました
と
結果のスタック トレースは次のとおりです。
System.IndexOutOfRangeException がキャッチされました Message="インデックスが配列の範囲外でした。" Source="mscorlib" StackTrace: System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte[] > inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 > outputOffset, PaddingMode paddingMode, Boolean fLast) at System.Security .Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte[] > inputBuffer, Int32 inputOffset, Int32 inputCount) で System.Security.Cryptography.CryptoStream.FlushFinalBlock() で System.Security.Cryptography.CryptoStream.Dispose(Boolean disposing) で System.IO. Crypt.EncryptDecrypt(文字列アクション、文字列 InFile、文字列 OutFile) での Stream.Close() > D:
私には同じエラーのようです...
編集終了 1
c# - Rijndael で復号化するときの例外
Rijndael でパスワードを解読するコードがあります
問題は、暗号ストリームを破棄すると例外が発生することです
同様の問題へのリンクがいくつか見つかりましたが、解決策はありません。
暗号ストリームの破棄を削除するだけで安全ですか、それとも後でファイナライザーが爆発する原因になりますか?
c# - RijndaelManaged Decryption - パディング /0 を適切に削除するにはどうすればよいですか?
復号化された文字列からパディングを削除するにはどうすればよいですか? RijndaelManaged プロバイダーを使用して暗号化と復号化を行っています。/0/0/0/0/0/0
復号化すると、文字列の最後にいくつかあります。私の質問は、結果の文字列から文字を適切に (適切に) 削除するにはどうすればよいですか?
silverlight-4.0 - Silverlight で RijndaelManaged 暗号化を使用する
128 ビットの Rijndael を使用してリクエストを暗号化するために必要な Web サービス クライアントを実装しています。RijndaelManaged クラスは Silverlight には存在しないため、次のアドバイスに従いました。
結果は、最初の 32 文字 (128 ビット)、正確なブロック サイズに対してのみ、得られた結果が正しい (つまり、RijndaelManaged を使用して得たものと同じ) ということです。ここで何が間違っているのかわかりません。私の .Net 実装 (RijndaelManaged) は次のようになります。
私のSilverlightは:
c# - 既知のキーとivの組み合わせからパスワードを取得します(RijndaelManaged in C#)
RijndaelManaged-KeyのキーとIV(文字列として)がわかっている場合、有効なパスワード文字列を「計算」することは可能ですか?
c# - C#AESRijndael-無効なパスワードの検出
プログラム内の機密データを暗号化するためにRijndaelを使用しています。
ユーザーが間違ったパスワードを入力すると、ほとんどの場合、CryptographicException
「パディングは無効であり、削除できません」というメッセージとともにaがスローされます。
ただし、非常に低い確率で、CryptStreamは間違ったパスワードで例外をスローせず、代わりに誤って復号化されたストリームを返します。言い換えれば、それはゴミに復号化します。
これを検出/防止する方法はありますか?私が考える最も簡単な方法は、暗号化するときにメッセージの先頭に「マジックナンバー」を付け、復号化した後もまだそこにあるかどうかを確認することです。
しかし、もっと簡単な方法があれば、ぜひ聞いてみたいです!
c# - Java を使用して .NET の RijndaelManaged によって暗号化されたバイトの復号化
.NET/C# の RijndaelManaged を使用して暗号化されたものを、Java を使用して復号化しようとしています。
C# プログラムは私のものではありません。相互運用性を高めるために変更することはできません。しかし、私はそれがどのように暗号化されているかを知っています:
Java側でこれを復号化する方法がわかりません。私が見つけた有用なものに最も近いのはこのブログ投稿ですが、実際の詳細が少なく、復号化を実装できませんでした.
編集:私はばかで、今は機能しています。
UnicodeEncodingは UTF-16LE ですが、私は UTF-8 を使用していました。パスワードを差し込むときに適切なエンコーディングに切り替えると、プログラムが修正されました。
また、BouncyCastle を取得して実行する必要がありましたCipher.getInstance("AES/CBC/PKCS7Padding", "BC");
finaledit: Java で .NET からデフォルトのRijndaelManaged ストリームを復号化するコードは、生のパスワードをキーとして使用して作成されたと仮定します。
そして覚えておいてください: C# 側を制御する場合は、派生していないパスワードをキーとして使用しないでください。
c# - Rijndaelを使用したファイルの暗号化/復号化
xmlファイルを転送する必要があり、暗号化する必要があります。近くにいると思われる例がいくつか見つかりましたが、ファイルを復号化すると、末尾にジャンク文字が表示されます。これに関するいくつかの投稿がありますが、私は正確に役立つものを見たことがありません。これが暗号化と復号化のコードです。
私は