問題タブ [cbc-mode]
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.
encryption - CBC (Cipher Block Chaining) の自己修復性の説明
ウィキペディア:
CBC モードには自己修復の特性があります。暗号の 1 つのブロックが変更された場合、エラーは最大で 2 つのブロックに伝播します。
構成例:
ブロックサイズを 64 ビットとします。元の平文は次のとおりです。
正しい暗号文は次のとおりです。
暗号文が壊れていて、バイトが次の'0x4b'
ように変更されている場合'0x4c'
:
次に、次のように復号化されます。
質問:
CBC (Cipher Block Chaining) の自己修復特性を理解するのに苦労しています。作成された例が役立つかもしれないと思っていましたが、今はもっと混乱しています。どんな助けでも素晴らしいでしょう。
java - JAVA: 画像を暗号化して表示する方法
Java を使用して画像を暗号化する必要があります。画像を適切に暗号化しましたが、ファイルを開こうとするとシステムが画像が長すぎるか破損したファイルであると表示するため、視覚化する方法がわかりません。pic ボディをメタデータなしで操作するにはどうすればよいですか?
ありがとう!!
java - Javaでcipher.updateは何をしますか?
DES-CBCを実装しています。私は何をしているのか混乱してcipher.init
いcipher.update
ますcipher.dofinal
。init を使用してキーを設定しdofinal
、結果を取得するだけです。アップデートは使いません。あれは正しいですか?
また、 UTF-8とASCIIエンコーディングを使用した場合の結果の違いは何ですか?
これが私のコードです:
ios - iOS 3DES 暗号化/復号化 CBC
この 3DES 復号化について助けが必要です。復号化用のコードをいくつか作成しましたが、正常に機能させることができません。暗号化をいじるのは初めてで、ここで何が間違っているのか正確にはわかりません。
サーバーから復号化用のキーを受信しています (これはキーの値の例です: 0F7BC98767FF9A01F2B2AD1CD644AD33 - ランダムに生成されたバイトの 16 進数表現です)。
これは、メッセージを復号化するために使用する方法です。
-- 編集 --- これは、メソッドから受け取った出力です。
bufferPtr: × ÕÏÁU
--- EDIT 2 --- キーの長さを 24 バイトに固定しましたが、最終結果は空の文字列になりました
python-3.x - PyCrypto を使用して 32 バイトの初期化ベクトルで MCRYPT_RIJNDAEL_256 を復号化する
次のようにPHPで暗号化されたデータがあります。
このデータを Python 3 アプリケーションで復号化する必要があります。PyCrypto を使用しようとしていますが、他のライブラリも使用できます。以下が機能することを期待しています。
私の初期化ベクトルは 32 バイトで、次の例外がスローされます。
32 バイトの初期化ベクトルと 32 バイトのブロック サイズを使用するように PyCrypto を設定するにはどうすればよいですか? または、データの復号化に使用できる別のライブラリはありますか?
encryption - AES での暗号化と復号化に 1 つのモードを使用できますか
サーバー側は AES/ECB/PKCS5Padding モードの暗号化を使用していますが、クライアント側 (モバイル) では AES/CBC/PKCS5Padding で復号化できますか? または、サーバー側とクライアント側の両方で同じモードを使用する必要がありますか?
お知らせ下さい。
c# - 暗号化 AES 256 入力平文の長さの問題
セキュリティ チームから、AES256 キー強度と CBC モードを使用するように求められています。私のコードは、256 CBC とブロック サイズを 128 に変更した後、長さ 32 文字の入力平文を入力した場合にのみ機能します。
「これはテストです」(32 文字ではありません) と入力すると、次のメッセージが表示されます。
System.Security.Cryptography.CryptographicException: 入力データが完全なブロックではありません。
「ABCDEFGHIJKLMNOPQRSTUVWXYZ000000」と入力すると、うまくいきます!
「これはテストです」を入力としてこれを機能させるには、どのコードが必要ですか。
以下のコード:
c++ - ファイルの復号化により、元のテキストと暗号化されたテキストの両方が表示されますか?
Crypto++ を使用してファイルの暗号化と復号化に取り組んでいます。暗号化ではkey
、ランダムIV
が生成さhexencoded
れ、ファイルからのテキストが暗号化されます。IV
とcipher
テキストの両方が同じファイルに書き込まれます。
復号化でkey
は、暗号化と同じ基準を使用して生成IV
され、ファイルからランダムに抽出され、hexdecoded
. 長さの後のテキストiv
は文字列に格納され、復号化されます。
何が起こるかというと、元のファイルを見ることができるので、それが機能していることはわかっていますがcipher
、元のファイルのテキストの後にテキストも表示されます。それを解決する方法はありますか?
前もって感謝します。☺</p>