問題タブ [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.
c# - Perlでファイルを暗号化し、C#で復号化します
Perlを使用してテキストファイルを暗号化し、C#で記述された別のアプリケーションを使用して復号化しようとしています。これが私のPerlコードです:
そして、復号化のための私のC#コード:
私は得続けます
System.Security.Cryptography.CryptographicException:復号化するデータの長さが無効です
一度に数バイトずつデータを読み取ろうとすると、最初の100バイトほどが適切に復号化されていることに気付きますが、残りは単なるゴミです。
ところで、私はPerlを使用して暗号化されたファイルを復号化できます:
では、C#とPerlで何が間違っているのでしょうか?
編集:@munissorのアドバイスに従って、使用するC#コードを変更してみました
PaddingMode.Zeros
しかし、それでも同じ例外が発生します。助けてください...
php - PHP サーバーと iOS 上の AES Rijndael が生成する暗号が異なる場合がある
Jim Dovey による NSData+AESCrypt カテゴリと、Michael Sedlaczek (2011-02-22) による NSString+AESCrypt を使用しています。
そしてPHPには簡単なスクリプトがあります:
ObjC で:
PHP で変数 $plaintext を変更し、スクリプトを実行し、output-cipher をコピーして Objective-c に貼り付けて復号化します。
と:
「myword」は「+l56Ia4yyK19D2x2+oCXuw==」を提供し、iOS で復号化して「myword」を取得します [OK]
「おはよう」で「5UdImsV1pQs60ovXmH74HQ==」が返され、iOS で復号化して「おはよう」を取得 [OK]
- "Schröder" は "KqNSCE8nGsYUYVdGZ2tnMw==" を返し、iOS で復号化して "Schröder" を取得します [OK]
- "Schröder" は "KqNSCE8nGsYUYVdGZ2tnMw==" を返し、iOS で復号化して "Schröder" を取得します [OK]
- 「非常に長いテキスト」で「lsa+QF3IHQnAFiOjl2Heyg==」が返され、iOS で復号化して「非常に長いテキスト」を取得する [OK]
- 「非常に非常に長いテキスト」で「kl/TheEyuyUMmKSqU4/fJSzzJOyvsXrGRt5/zsnqjQww=」が表示され、iOS で復号化できません [FAIL]
なぜ#5は失敗するのですか?Xcode を使用して「非常に非常に長いテキスト」を暗号化しようとすると、「kl/TheEyuyUMmKSqU4/fJS90UZoJ73S4gox2uCoWoIL8=」というメッセージが表示されます。
さらに、Xcode で「おはよう」を暗号化すると、「hVq1AuR8PAXSOztK26pmMw==」が返され、PHP は「5UdImsV1pQs60ovXmH74HQ==」が返されますが、Xcode は同じキーを使用して両方を「おはよう」に復号化します。
助けてください。
delphi - DCPCrypt/DelphiがRijndaelを正しくエンコードしていません
私はDCPCryptパッケージ(最新バージョン)を持っており、Delphi2007でAES / Rijndael CBCエンコーディング(128ビットブロック、256ビットキー)を、NISTによって配布されたAES既知の回答テスト(KAT)ベクトルからのテスト値で実行しようとしています。1つのサンプルテストベクトル:
以下のコードは次を返します。
これは明らかに正しくありません。
私は呼んでいます
と
テストデータの長さを考えると、パディングの問題を回避しています。私は何が間違っているのですか?助言がありますか?
(いいえ、パラメーター文字列の長さを再カウントする必要はありません-私はそれを数回行いました。)
php - PHPのMCRYPT_RIJNDAEL_256CBCに相当するPython
この関数のPython実装が必要です-appengineで使用したいと思います。
私はPythonが苦手なので、助けてください。
c# - Rijndael/AES 復号化 C# から PHP への変換
私はC#で次のコードを持っています
このコード スニペットは、特定のファイルを復号化し、復号化されたバージョンを出力します。RijndaelManaged im の CreateDecryptor メソッドで、パスワードを KEY および IV として使用します。
ここでPHPのstackoverflowでいくつかのコードを見つけましたが、C#のようにキーと同じバイト配列をivに渡そうとしても何も起こりません。
PHPでコードを適切に作成する方法について、本当に助けが必要です。PHP でファイルを出力する必要はありません。文字列で十分です。
UPDATE : デフォルトの C# RijndaelManaged 暗号方式は AES-128-CBC です。PHPコードをそのmcryptモジュールに変更しました(デフォルトのC#暗号メソッド)
更新 2: Java Decryptor を作成することができたので、別のことがわかりました。PHP は PKCS7 パディングを使用する必要があります。
php - kohana 3 Encrypt クラスの encode() メソッドが毎回異なる文字列を返すのはなぜですか?
Encrypt クラスから実行してencode()
いますが、同じ入力文字列に対して異なる文字列を返すたびに。私のapplication/config/encrypt.php
:
使用する:
$str
常に異なる値を持っています。それはエラーですか、それともそのように動作するはずですか? なんで?
decode()
また、いつでもその値を取得して、test
毎回文字列を取得できることを追加する必要があります。
更新:出力例は次のとおりです。0vahDa/2Qu3XQWObkjwLPoL73g==
どうもありがとうございました。
objective-c - Rijndael/SHA256暗号化に関する混乱
復号化/暗号化アルゴリズムを作成する必要がありますが、SHA256 / CBC / Salt/IVなどについて混乱しています。
正しく暗号化された文字列の例は次のとおりです。
Base64でエンコードされ、次にRijndaelでエンコードされます。最初の8文字は「Salted__」で、次の8文字はある種のソルト(ランダムに生成されたもの)だと思います。
このデータを暗号化するために提供したキーは「12345678」です。
復号化されたデータは次のようになります。
2358442189442905:ZGF2aWQ =:1324515293:1.9.12:1:MC4wLjAuMCxub25lLzA =:LfcTMMYyUcwgL8keu3sMoNC / PFEKZy8fWFvo3rJvSdo
どうやらそれはCrypt::CBC ::VERSION2.29をフォローしています
上記の正しく暗号化された文字列を復号化できないようです。私は以下を試しました:
これを適切に復号化する方法についてのアイデアはありますか?
編集:詳細情報:これは、私が実装しようとしているものに関連するコードです。
これが私が完全には理解していない実装です:http://pastebin.com/R0b1Z7GH http://pastebin.com/aYWFXesP
rijndael - Rijndael の CriptographyException
Rijndael に問題があります。私の問題は次のとおりです。Decrypt メソッドで incсorect キーを使用すると、Rijndael が CriptograpfyException をスローします。そのキーが間違っていることをどのように知ることができますか? なぜ例外をスローするのですか? 復号化メソッドはガベージを返す必要があると思いました!
c# - 出力が無効です
PDFファイルを.xxxファイルに暗号化するPHPプログラムがあります。この出力は、この.xxxファイルを復号化してPDFファイルに戻すC#プログラムによって読み取られています。
私の問題は、C# で復号化されたファイルを開くと、PDF リーダーがファイルが破損していることを通知することです。PHP でプレーンテキストを暗号化し、C# で復号化すると、暗号化したファイルを取得したため、問題が発生するだけです。 PDFファイル、つまりBINARYファイルに表示されます
助言がありますか ?!
ノート:
- PHPでは、mcrypt拡張RijndaelアルゴリズムCBC PKCS7パディングを使用します(パディングは手動で行われます)
- C# では、RijndaelManaged クラスを使用してデータの暗号化と復号化を行います
編集:
PHPで使用する暗号化方法は次のとおりです。
C# での復号化方法は次のとおりです。
C# で復号化を呼び出す方法と、出力を書き込む方法は次のとおりです。