問題タブ [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.
iphone - ゼロ パディングを使用した Objective C AES CBC 暗号化
AES 128 暗号化、CBC モード、ゼロ パディングを使用して文字列を暗号化しようとしています。悲しいことに、多くの試みが失敗したため、これを行う方法がわかりません。私は C# のコードを持っていますが、誰かが暗号化を機能させるのを手伝ってくれるかどうか疑問に思っていました。コード:
私は一般的な暗号に見えましたが、CBC モードのオプションが表示されません [とにかく cccrypto をあまり知らないので、見落としているのでしょうか?] ありがとうございます。
3des - 14文字の暗号化メッセージを3DES復号方式のCBCモードで復号することはできますか?
ウィキペディアで暗号化の CBC モードについて読んだところ、3DES 方式ではメッセージがそれぞれ 16 桁のブロックに分割され、暗号化または復号化されると書かれていました。暗号化されたすべてのブロックは、次の平文と XOR されてから暗号化されます。私はここからこの情報を図でよく説明しました。http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29
私の問題は、長さ 14 のメッセージを復号化する必要があるため、1 つのブロックになることです。では、このような小さなメッセージに対して CBC を実装するにはどうすればよいでしょうか? XORされる次のブロックはありません。
encryption - ランダム アクセス暗号化ファイル
Web ベースのファイル ストレージ サービス (C#) を実装しています。ファイルはサーバーに保存されるときに暗号化されますが、課題は復号化機能をどのように実装するかです。
ファイルは、数 KB から数 GB まで、任意のサイズにすることができます。データ転送はチャンク単位で行われるため、ユーザーはオフセット 50000、75000 などからデータをダウンロードします。これは暗号化されていないファイルでは問題なく機能しますが、暗号化が使用されている場合は、各チャンクがオフセットから読み取られる前にファイル全体を復号化する必要があります。 .
だから、私はこれを解決する方法を見ています。これまでの私の調査では、ECB と CBC を使用できることが示されています。ECB は最も基本的な (そして最も安全でない) ブロックで、各ブロックが個別に暗号化されます。ECB が機能する方法は、私が探しているものとほとんど同じですが、セキュリティが懸念事項です。CBC も同様ですが、現在のブロックを復号化する前に前のブロックを復号化する必要があります。これは、ファイルが最初から最後まで読み取られ、サーバー上で復号化するときにデータを保持する限り問題ありませんが、結局のところ、転送前にサーバー側のファイル全体を復号化するよりもはるかに優れているわけではありません。
私が考慮すべき他の選択肢を知っている人はいますか?私はまだ理論的な研究を行っているだけなので、この時点ではコードはありません。
php - CBCで暗号文スティーリング(CTS)を実装するPHP
私はCBC用のPHPで暗号文スティーリング(CTS)を実装しようとしています。
以下の2つのリンクを参照
PHPでAESCBC+ CTS(暗号文盗用)モードを使用してデータを暗号化/復号化するにはどうすればよいですか?
と
http://en.wikipedia.org/wiki/Ciphertext_stealing
私は混乱していて、XORの最後の最も単純なステップで立ち往生しています。これはばかげていることは知っていますが、すべての組み合わせを試したので、何が欠けているのかわかりません。コードは次のとおりです。
php - CBC と HMac の使い方 Mcrypt PHP
CBC と HMAC をどのように使用しますか?
インターネットで十分な情報を見つけることができませんでした。
IVはどうやって入手するのですか?後で解読する必要があるときに、それが何であるかをどのように知ることができますか? (それをデータベースに入れることは目的を無効にしないでしょうか?)
HMAC とは何ですか? ハッキングから保護されていますか?
暗号化されたテキストはデータベースに残ります。誰かがデータベースにハッキングした場合、SQL インジェクションを実行する方法が見つからない限り、ファイル マネージャーにもアクセスできる可能性があります。スクリプトはどの IV とキーを使用するかをどのように知ることができ、ハッカーにはわからないのでしょうか?
複数の段落のテキストを暗号化する場合、それを書いたユーザーだけが Web サイト内で見ることができるようにするための最良の方法は何ですか? (ユーザーは常にプレーン テキストとして表示します。)
私は現在 ECB を使用しています (ウェブサイトはまだベータ版としてリリースされていません) が、CBC の方がはるかに安全であると聞いています。
python - PKCS5Pythonを使用したAES復号化パディング
私はPythonでAESCBC復号化を実装しようとしています。暗号化されたテキストは16バイトの倍数ではないため、パディングが必要でした。パディングなしで、このエラーが表面化しました
「TypeError:奇数の長さの文字列」
しかし、PyCryptoPythonでPKCS5を実装するための適切なリファレンスを見つけることができませんでした。これを実装するためのコマンドはありますか?ありがとう
マーカスの提案を調べた後、私はこれを行いました。
私の目標は、実際にはこのコードを使用して16進メッセージ(128バイト)を復号化することです。ただし、出力は「?:」であり、これは非常に小さく、unpadコマンドはそれらのバイトを削除しています。これがコードです。
php - Perl と PHP 間の openssl aes cbc 文字列のデコード/エンコード
私は PHP でいくつかのサーバー コードを書いています。Perl で書かれたオフライン プロセスがあり、暗号化された文字列を介して通信する必要があります。PHPで私は使用しています:
基本的に、Perl を使用してまったく同じ文字列出力を実現したいと考えています。私がこれを行う方法についての助けをいただければ幸いです。ありがとう!
java - エラー:指定された最後のブロックが適切に埋め込まれていません
これを実行するたびにエラーが発生します
「エラー:指定された最後のブロックが適切に埋め込まれていません」
基本的に、キーの最後の3バイトをブルートフォースしようとしていますが、最初の13バイトは正しいです。私が間違っていることは何ですか?パディングを削除しようとしましたが、機能しますが、「メアリーが持っていた」という単語が含まれていると確信しているプレーンテキストが見つかりませんでした。注:sun.misc.BASE64Decoderを使用しています
これが私のコードの一部です。
}
terminal - AES キーに LF 文字が含まれている
openssl を使用してビデオ ファイルを復号化しようとしています。ただし、16 バイトの aes キーには、改行 (LF) 文字が含まれています。
LF のため、キーを端末にコピーすると、キー全体ではなく「x」のみが送信されます。
端末でこのキーを入力するにはどうすればよいですか?
openssl aes-128-cbc -d -in input.ts -out output.ts -pass [aes_key]
java - Java AES 256 CBC モードが正しく動作しない
ECB と CBC で AES を実行する Ruby コードは次のとおりです。
そして、これがJavaの同等物です:
COMPILE : commons jar: http://apache.mirrors.pair.com//commons/codec/binaries/commons-codec-1.7-bin.zip
走る
ECB モードは両方で正確に機能することに注意してください。しかし、CBC モードは異なります。これを C でも実行したところ、Ruby は正しく、Java は正しくないことがわかりました。
Javaで何が間違っていますか?