問題タブ [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.
security - 暗号化操作で生成される結果の暗号文の長さを事前に決定するにはどうすればよいですか?
ファイルとデータベースの両方に暗号化された状態でいくつかの情報を保存するアプリケーションがあります。プレーンテキスト入力に基づいて、結果の暗号文の長さを計算するにはどうすればよいですか?
暗号化操作は、.NET RijndaelManagedクラス/アルゴリズムを使用してから、保存前にBase64文字列に変換することで構成されます。
私ができるようにしたいのは、暗号化された文字列が特定の入力に対してどのくらいの長さになるかを事前に知って、暗号化された形式で使用可能なストレージスペースに応じて入力の長さを制限できるようにすることです(それが理にかなっている場合) !)。
ありがとう
c# - Rijndael を使用して Java で暗号化し、C# で復号化する
Rijndael アルゴリズムを使用すると、構成ファイル (または構成ファイル内のセクション) を暗号化し、Java でそのファイルを復号化できますか? 次のような仮定を立てることができます。
- IV を渡す (自動生成されたアイデア :: GenerateIV(); ではない)
- キーを渡す
- BlockSize は 128 (標準)
これができると仮定すると、これに関する私の次の質問は次のようになります。
- keySize を 256 にすることはできますか? 128 が AES であることはわかっていますが、256 を使用したいと考えています。また、Java に 256 用のプロバイダーがあるかどうか、または BouncyCastle を使用する必要があるかどうかもわかりません。
- パディングとは何ですか?PKCS7?
- CiperMode は CBC になると思います
C#でこんな感じ?しかし、Javaで解読できるかどうかはわかりません...おそらく私のc#でさえ間違っていますか?
c# - AESメソッドのバイト配列を作成するのに何文字ですか?
ここでAESメソッドを使用しています:http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged.aspx
バイト配列に変換してAES暗号化メソッドに渡す文字列値が必要です。メソッドが期待する正しいバイト配列サイズを生成するには、文字列は何文字である必要がありますか?
.net - AES 256 暗号化
AES 256 を使用して、プレーン テキストを暗号化/復号化しています。しかし、アルゴリズムはパディングに PKCS7 のみを使用しますが、他のプラットフォームと互換性を持たせるには PKCS5 を使用する必要があります。どうすればこれを達成できますか?
私のソースコードは次のとおりです。
c# - C#AES-256暗号化
RijndaelManagedを使用して、単純な暗号化/復号化ユーティリティを作成しています。これは正常に機能していますが、Unix(Oracle)で作成された別のプログラムと統合しようとしています。私の問題は、すべての小さい入力文字列について、Unixコードが生成するのとまったく同じ暗号化された16進数を取得していますが、長い文字列の場合、暗号化された16進数の半分は同じですが、残りの半分は異なります。
Unix出力:
Windows出力(私のコード):
私のWindowsコードは次のとおりです。
Unix(PL / SQL)コード:
私が見る唯一の違いは、PKCS5とPCKS7の使用です。ただし、.NETにはPCKS5がありません。
c# - 暗号化/復号化により、Base-64 文字列に無効な文字が返される
私は、RijndaelManaged アルゴリズムの暗号化/復号化に取り組んできました。
GUID を暗号化すると、暗号化されたアルゴリズムの途中に「%」記号が表示されます。同じ暗号化された GUI を復号化すると、「Base-64 文字列に無効な文字があります」というエラーが表示されます。これは、暗号化されたトークンに % 記号が含まれているために発生します。
暗号化と復号化のコードは次のとおりです。
この例外を回避する解決策を教えてください。% 記号を避けるにはどうすればよいですか?
暗号化/復号化により、Base-64 文字列に無効な文字が返される
.net - .NET で SlowAES と RijndaelManaged クラスを取得して一緒にプレイする
javascript ライブラリSlowAESと .NET のRijndaelManagedクラスを使用して、AES 暗号化/復号化をセットアップしようとしています。
この投稿を読んだ後、私はこの方法を選択しました。 Cheeso は、これら 2 つの暗号化方法を一緒にプレイすることができました。
「COM-wrapped-SlowAE のテストでは、CBC モードを使用しました。暗号化は .NET の RijndaelManaged クラスと完全に互換性がありました」 - Cheeso
Cheeso の Windows Scripting Component から JavaScript コード、最新の Slowaes ライブラリを取得し、次の JavaScript スクリプトを使用してテストしました。
次の出力が得られます。
MSDNにある次の例を変更して、C# の暗号化と一致するようにしました。
バイト配列のウォッチ:
マネージド .NET クラスですべてのパディング オプションを試しましたが、暗号化された出力を一致させることができません。誰でも私を助けることができますか?
ありがとう、
ボブ
.net - AesManaged または RijndaelManaged よりも AesCryptoServiceProvider を選択するのはいつですか?
見分け方は以下だと思います
- AesCryptoServiceProvider は FIPS に準拠しています
- AesManaged はクロスプラットフォームであり、.NET 3.0 が必要です
- RijndaelManaged は .NET 2.0 で実行され、ブロックサイズを制限する必要があります
それは正しいですか?
c# - 再現可能な暗号鍵をどのように生成しますか?
データの暗号化を検討しています。パスワードに基づいて暗号化キーを生成し、時間などの移動値を生成したいと考えています。目標は、キーを変更することですが、パスワードを知っている人なら誰でも復号化できるようにすることです。これはC#で発生しています。次のコードを使用してパスワードをハッシュしています。
次に、そのハッシュとソルトを使用してキーを生成します。
私がこれを行う方法には問題があるようです。一部のコンピューターが異なるタイムゾーンにある場合、またはデータを送信するときに時が刻む場合、またはマシンの時刻がわずかにずれている場合。より良い提案はありますか?