問題タブ [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.
java - AES/CBC は本当に IV パラメータを必要としますか?
AES / CBC(モード)を使用してメッセージを暗号化する簡単なアプリを作成しています。私の理解では、CBCモードにはIVパラメーターが必要ですが、IVパラメーターを使用せずにコードが機能する理由がわかりません。誰でも理由を説明できますか?ありがとう。
暗号化されたメッセージが出力されました: T9KdWxVZ5xStaisXn6llfg== 例外なし。
java - Java で 8 バイト IV を作成する
Javaでの暗号化は初めてで、CBCモードの操作に基づいて、DES対称暗号を使用してフレーズを暗号化および復号化するプログラムを作成しようとしています。
8 バイトの初期化ベクトルを作成する方法と、新しい IV を AlgorithmParameterSpec クラスにキャストする方法を誰か教えてもらえますか?
また、どのパッケージをインポートすればよいですか?
編集:現在、次の行があります:
p>上記のアプローチは正しいですか?
ありがとう。
java - テキスト ファイルのコンテンツの暗号化と復号化 (Java)
ここで私のプログラムの助けを探しています。このプログラムは、操作の CBC モードに基づいて、DES 対称暗号を使用してフレーズを暗号化および復号化できます。
私が今やろうとしているのは、 CBC モードの操作を使用して、DES 対称暗号を使用してテキスト ファイルのコンテンツを暗号化および復号化できるように変更することです。
誰でもこれで私を助けてくれますか?
ありがとうございました!
c - 毎回異なる unsigned char の出力
そのため、cbc_crypt を使用して、さまざまな文字列の暗号化と復号化を試みています。これまでの私のプログラムは次のとおりです。
cbc_crypt はコメントアウトされていることに注意してください。これは、cbc_crypt をコメントアウトして実行するとどうなるかです。
印刷するたびにテキストが変わる理由がわかりません。暗号化を実行しようとさえしていません。初期化した unsigned char を出力しただけです。どんな助けでも大歓迎です。
編集:どうやら私は %s を使用する必要があります。これを行うと、一貫して印刷されるようになりました。
以前にアドレスを印刷していた理由を誰か説明できますか? また、16進数で印刷する方法はありますか?(4Vとすべての疑問符がどこから来ているのか本当にわかりません)。
編集2:わかりましたので、スコットが提案したように、私は今このように印刷しています
次に、テキストを 185286171186254254254 として出力します。
それが元の 16 進コード {0x12, 0x34, 0x56, 0xab, 0xba, 0xfe, 0xfe, 0xfe} とどのように一致するかを理解しようとしています。
編集: %u の代わりに %x を使用する必要があることに気付きました。123456abbafefefe が正しく出力されるようになりました。みんなありがとう。
perl - Perl DES CBC 暗号化によりバイト数が増える
Perl を使用して、Crypt::CBC ライブラリを使用して CBC DES 暗号化を実行しています。
コードの出力は次のとおりです。
私のデータは便利なサイズの 64 ビット (16 桁の 16 桁) で、DES 標準に準拠しています。ウィキペディアによると
DES は典型的なブロック暗号です — 平文ビットの固定長文字列を取り、一連の複雑な操作によって同じ長さの別の暗号文ビット文字列に変換するアルゴリズムです
エンコードされた出力のバイト長が元の入力よりも長いのはなぜですか?
ありがとう。
aes - CBC_CTS_Mode_ExternalCipher を使用すると、出力が文字化けします
私はこれを行うのが嫌いですが、 CBC_CTS_Mode_ExternalCipher に関するドキュメントがほとんどまたはまったくないため、イライラしています。
AES128 の部分的に既知のキーがあります。キーの未知の部分と既知の部分のすべての可能な組み合わせと順列を生成する関数を作成しました。言い直します... 申し訳ありませんが、関数は私が望む形式、つまり 16 バイトの 16 バイトでキーを作成しますが、復号化の出力はすべてめちゃくちゃです。メッセージと XOR を復号化するだけでした。 CBC は手動ですが、時間がありません。
復号化が出力されると、あらゆる種類の記号、数字、文字、およびクレイジーさが得られます。
より知識のある人が、これが機能しない理由を説明したり、暗号解読用の暗号文を既に持っている場合に CBC モードで暗号文文字列を復号化するより良い方法を説明したりできますか?
ありがとう
編集:「キーは機能しますが、復号化は機能しません」を置き換えて、言い換えてみましょう...申し訳ありませんが、関数は私が望んでいる形式、つまり16バイトの16バイトでキーを作成しますが、復号化の出力はすべてめちゃくちゃ
php - c++ から php への翻訳、復号化機能
そのため、C++ コードの一部を php に変換しようとしています。C++ は外部ソースからのものであり、控えめに言っても、C++ と復号化の両方に関する私の知識は不足しています。
ソース C++ は次のとおりです。
私がこれまでに得たもの:
基本的に皆さんに何かしてほしいとお願いしていることはわかっていますが、その内容に本当にこだわっていfor (auto it...
ます。
本当に役立つヒント/説明は次のとおりです。
- この場合、何をし
BF_ecb_encrypt
ますか?(疑似コードまたは php でさえ?) (自分自身を指で叩きます。「完成品を求めないでください」 ) - の翻訳で正しい軌道に乗ってい
transform
ますか? {{0}}
とはBF_set_key(&key, 16, key_data);
?- とは
reinterpret_cast<unsigned char*>(&(*it))
?
これらのドキュメントページを確認しましたが、役に立ちませんでした:
完全なソースは github で入手できます。
この特定のコードはsrc/parser.cpp
encryption - CBC 暗号化テキストを変更してメッセージを変更する方法
私は現在、暗号化について学習している最中であり、学んだことをより明確にすることを望んでいます。
「100 ドルをアカウント 123456 から 555555 に移動する必要があります」というメッセージが、aes-128-cbc とランダム IV を使用して暗号化されたとします。私の教授は、暗号化されたテキストを変更して、もう一度解読したときにメッセージが「900 ドルをアカウント 123456 から 555555 に移動する必要があります」となるようにすることができると言っています。これをどのように行うのですか?
独自のキーとivを生成し、メッセージを暗号化し、それを16進文字に変換して操作することで、自分でそれを理解しようとしました。そこから、いくつかの文字を交換してから復号化できますか? 私はこれをいじってみましたが、いつも何かがうまくいかないようでした。
これには、基本的な Linux コマンド ラインを使用します。
どんな助けや説明も素晴らしいでしょう!
java - Java の Node.js aes-256-cbc
Java で次の Node.js 関数を実装するにはどうすればよいですか?
crypto はパスワードからキーと iv を導出することを読みましたが、Java でそれを行う方法がわかりません。
ありがとう。