問題タブ [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.

0 投票する
2 に答える
1667 参照

c# - Perlでファイルを暗号化し、C#で復号化します

Perlを使用してテキストファイルを暗号化し、C#で記述された別のアプリケーションを使用して復号化しようとしています。これが私のPerlコードです:

そして、復号化のための私のC#コード:

私は得続けます

System.Security.Cryptography.CryptographicException:復号化するデータの長さが無効です

一度に数バイトずつデータを読み取ろうとすると、最初の100バイトほどが適切に復号化されていることに気付きますが、残りは単なるゴミです。

ところで、私はPerlを使用して暗号化されたファイルを復号化できます:

では、C#とPerlで何が間違っているのでしょうか?

編集:@munissorのアドバイスに従って、使用するC#コードを変更してみました

PaddingMode.Zeros

しかし、それでも同じ例外が発生します。助けてください...

0 投票する
2 に答える
2580 参照

php - PHP サーバーと iOS 上の AES Rijndael が生成する暗号が異なる場合がある

Jim Dovey による NSData+AESCrypt カテゴリと、Michael Sedlaczek (2011-02-22) による NSString+AESCrypt を使用しています。

そしてPHPには簡単なスクリプトがあります:

ObjC で:

PHP で変数 $plaintext を変更し、スクリプトを実行し、output-cipher をコピーして Objective-c に貼り付けて復号化します。

と:

  1. 「myword」は「+l56Ia4yyK19D2x2+oCXuw==」を提供し、iOS で復号化して「myword」を取得します [OK]

  2. 「おはよう」で「5UdImsV1pQs60ovXmH74HQ==」が返され、iOS で復号化して「おはよう」を取得 [OK]

  3. "Schröder" は "KqNSCE8nGsYUYVdGZ2tnMw==" を返し、iOS で復号化して "Schröder" を取得します [OK]
  4. "Schröder" は "KqNSCE8nGsYUYVdGZ2tnMw==" を返し、iOS で復号化して "Schröder" を取得します [OK]
  5. 「非常に長いテキスト」で「lsa+QF3IHQnAFiOjl2Heyg==」が返され、iOS で復号化して「非常に長いテキスト」を取得する [OK]
  6. 「非常に非常に長いテキスト」で「kl/TheEyuyUMmKSqU4/fJSzzJOyvsXrGRt5/zsnqjQww=」が表示され、iOS で復号化できません [FAIL]

なぜ#5は失敗するのですか?Xcode を使用して「非常に非常に長いテキスト」を暗号化しようとすると、「kl/TheEyuyUMmKSqU4/fJS90UZoJ73S4gox2uCoWoIL8=」というメッセージが表示されます。

さらに、Xcode で「おはよう」を暗号化すると、「hVq1AuR8PAXSOztK26pmMw==」が返され、PHP は「5UdImsV1pQs60ovXmH74HQ==」が返されますが、Xcode は同じキーを使用して両方を「おはよう」に復号化します。

助けてください。

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

delphi - DCPCrypt/DelphiがRijndaelを正しくエンコードしていません

私はDCPCryptパッケージ(最新バージョン)を持っており、Delphi2007でAES / Rijndael CBCエンコーディング(128ビットブロック、256ビットキー)を、NISTによって配布されたAES既知の回答テスト(KAT)ベクトルからのテスト値で実行しようとしています。1つのサンプルテストベクトル:

以下のコードは次を返します。

これは明らかに正しくありません。

私は呼んでいます

テストデータの長さを考えると、パディングの問題を回避しています。私は何が間違っているのですか?助言がありますか?

(いいえ、パラメーター文字列の長さを再カウントする必要はありません-私はそれを数回行いました。)

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

php - PHPのMCRYPT_RIJNDAEL_256CBCに相当するPython

この関数のPython実装が必要です-appengineで使用したいと思います。

私はPythonが苦手なので、助けてください。

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

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 パディングを使用する必要があります。

0 投票する
2 に答える
985 参照

php - kohana 3 Encrypt クラスの encode() メソッドが毎回異なる文字列を返すのはなぜですか?

Encrypt クラスから実行してencode()いますが、同じ入力文字列に対して異なる文字列を返すたびに。私のapplication/config/encrypt.php

使用する:

$str常に異なる値を持っています。それはエラーですか、それともそのように動作するはずですか? なんで?

decode()また、いつでもその値を取得して、test毎回文字列を取得できることを追加する必要があります。

更新:出力例は次のとおりです。0vahDa/2Qu3XQWObkjwLPoL73g==

どうもありがとうございました。

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

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

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

rijndael - Rijndael の CriptographyException

Rijndael に問題があります。私の問題は次のとおりです。Decrypt メソッドで incсorect キーを使用すると、Rijndael が CriptograpfyException をスローします。そのキーが間違っていることをどのように知ることができますか? なぜ例外をスローするのですか? 復号化メソッドはガベージを返す必要があると思いました!

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

c# - 出力が無効です

PDFファイルを.xxxファイルに暗号化するPHPプログラムがあります。この出力は、この.xxxファイルを復号化してPDFファイルに戻すC#プログラムによって読み取られています。

私の問題は、C# で復号化されたファイルを開くと、PDF リーダーがファイルが破損していることを通知することです。PHP でプレーンテキストを暗号化し、C# で復号化すると、暗号化したファイルを取得したため、問題が発生するだけです。 PDFファイル、つまりBINARYファイルに表示されます

助言がありますか ?!

ノート:

  1. PHPでは、mcrypt拡張RijndaelアルゴリズムCBC PKCS7パディングを使用します(パディングは手動で行われます)
  2. C# では、RijndaelManaged クラスを使用してデータの暗号化と復号化を行います

編集

PHPで使用する暗号化方法は次のとおりです。

C# での復号化方法は次のとおりです。

C# で復号化を呼び出す方法と、出力を書き込む方法は次のとおりです。