問題タブ [vigenere]

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 投票する
1 に答える
2143 参照

c# - バイトヴィジュネル暗号、復号化のエラー

フルバイトで動作するVigenere暗号化/復号化関数を作成する必要があります(tcpを介してファイルを暗号化して送信し、反対側で復号化するため)。私の暗号化機能は機能しているようです(多かれ少なかれ、復号化機能なしでは実際にテストすることはできません)。

暗号化機能のコードは次のとおりです。

ただし、復号化関数は、ほぼ同じ方法で記述されていても、エラーが発生します。「ゼロ除算を試みました。」

復号化機能のコード:

エラーポイントは、keyIndex = keyIndex%keylength;という行にあります。しかし、私が不思議に思うのは、コードが最初の関数とほとんど同じであり、問​​題を引き起こしていないように見えることです。受信したfildでテストしていますが、暗号化せずに正しく到着します。誰かがそれを手伝ってくれますか?

編集:復号化機能コードを使用しているメソッド/スレッド:

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

java - Javaでvigenere暗号を使用してバイト配列を暗号化する

vigenere 暗号を使用してファイル (jpg) を暗号化する必要があります。コードを書きましたが、暗号化と復号化を行った後、ファイルが破損しています。画像の最初の 1/4 は正常に表示されますが、残りは破損しています。これが私のコードです:

私は何を間違えましたか?

編集:

ファイルの読み取りと書き込み:

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

java - Java での Vigenère 暗号の復号化

Java メソッドを使用して暗号化を解読しようとしていますが、コードが正しく返されないようです。暗号化プロセスを元に戻そうとしましたが、何が間違っているのかわかりません。申し訳ありませんが、これがばかげた質問でないことを願っています。

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

c# - vigenere 暗号を使用してドキュメントを暗号化する

さまざまな暗号化手法について学ぶことに興味があり、c# で vigenere 暗号を実装し始めました。次のリンクのような文字列を暗号化および復号化できる Windows フォームを実装できます。

https://stackoverflow.com/questions/13533269/c-sharp-vigenere-cipher-to-encrypt-an-text-file

私の質問は、文字列の代わりに vigenere を使用して単語文書または画像ファイルを暗号化するにはどうすればよいですか? ファイルを選択するためのダイアログを開くボタンを作成しましたが、選択したファイルを暗号化する方法に行き詰まっています。誰かアイデアはありますか?

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

c# - C#の説明におけるVigenereアルゴリズム

私はこのコードに出くわしました:

バイトヴィジュネル暗号、復号化のエラー

しかし、ルールに従おうとして、私はそれについて新しい質問をしました。

次のアルゴリズムが使用されており、私はそれをよりよく理解しようとしています。

Unicodeの場合と同じように、キーをトリミングする必要があると私は考えていますか?したがって、大文字から65を引くと、共通の文字/記号が生成されますか?

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

c - C で関数からの戻り値を使用する

私の目標は、Vigenere 暗号を作成することです。argv からキーを取得し、ユーザーから文字列を取得してから、作成した関数を介してメッセージとキーを渡し、それらを組み合わせて新しい値を返し、印刷することでこれを実行しようとしています。何らかの理由で、キーを印刷しているだけです。新しい関数と、戻り値をどのように使用しようとしているかに関係があると思います。コードは次のとおりです。

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

security - 修正された Vigenere 暗号の解読

修正された Vigenere Cipher を解読するアルゴリズムに取り組んでいます。通常の Vigenere 暗号は、次のように機能します。

通常版

修正版

変更されたバージョンが以前の状態/文字を使用して新しいものを生成する方法に注意してください。それを破るための私の理論は、変更されたバージョンを通常の Vigenere 暗号に戻すことです。このようにして、周波数分析やその他の方法を適用できます。LHS で C を使用して " previousC "が得られるように、何らかの方法でその方程式を再配置する必要があります。C と previousC は両方とも既知の値であるため、反転を行うのは簡単なはずです (最初の文字から始めます)。

私の唯一の問題は、C と previousC に関して方程式をどのように書き直すかということです。誰かがそれを指摘できれば、それは大いに役立つでしょう。

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

c - ヴィジュネル暗号でキーをループする方法

ヴィジュネル暗号のプログラムを書いています。しかし、プレーンテキストの最後までキーを繰り返す方法がわかりません。現在、私のコードは、キーの文字数に相当する文字のみを暗号化しています。たとえば、「dog」のキーを入力し、プレーンテキストが「catdog」の場合、「fozdyw」の暗号化されたテキストが表示されます。これは、最初の3文字のみを暗号化することを意味します。

これは、暗号化を行う私のコードの一部です。

私は何が間違っているのですか?そして、何をするのが正しいのでしょうか?

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

java - JavaのVigenere/Polyalphabetic Cipher Decoder / Decrypter / Breaker

私は、Vigenere暗号でエンコードされたメッセージの暗号化をエンコード、デコード、および解読するプログラムを開発しようとしています。私が行き詰まっているのは、(キーなしで)メッセージを[暗号化]して破ることです。私はそれをどのように行うかについての考えを持っていますが、それをコーディングする方法がわかりません。私の考えは次のとおりです。

プログラムは、1から26で終わる長さの潜在的なキーを体系的に生成します。キーには英語のアルファベットの文字が含まれ、大文字と小文字は区別されません。キーの長さ(1〜26のどこか)ごとに、キーは文字「a」で埋められ、プログラムはそれらのキーが正しいかどうかを確認します(別の方法があります)。キーが正しくない場合、最後の位置にある文字がアルファベットの次の文字に回転します。最後の文字が26の可能な位置すべてを通過すると、最後から2番目の文字が回転し、次に最後の文字と最後から2番目の文字がそれに応じて回転します。 [潜在的な]キーの文字)。新しいキーが生成されるたびに、[potential]キーは別のメソッドでチェックされており、正しいキーが見つかるとメソッドは停止します。キー作成の進行は次のようになります。

(うまくいけば、そこにパターンを見ることができます)

誰かがこれを行う方法のコードを持っているか知っているか、これをコーディングするために必要な手順をガイドが満たすのを手伝ってくれるなら、それは大いにありがたいです。

ありがとう!

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

c++ - 自家製ヴィジュネル暗号; acsii文字操作の操作

投稿のタイトルが示すように、今回はVigenere Cipherを作成することで、C++と文字操作の理解を深めるために取り組んでいます。慣れていない人にとっては、テキストファイルを暗号化するのはかなり簡単な方法です。

それが機能する基本的な方法は、文字列「キー」が存在し、各文字(少なくとも私の場合)は小文字のアルファベット文字であるということです。これらは配列に格納され、エンコードされるファイルの値を「シフト」するために使用されます。「a」の文字はターゲットを0だけシフトし、「z」はターゲットを25だけシフトします。「シフト」は循環的です。つまり、「z」を「b」(1)だけシフトすると、 'a'。


私の現在の方法は以下のとおりです。


私の問題はモジュロ演算にあると私は信じています。これをハッシュ化するのに多くの時間を費やしたためかもしれませんが、昨夜これを書くのに何時間も費やし、次にベッドに横になって、自分が欲しいものを効果的に作成する方法に頭を悩ませようとしました。

ここに問題があります:ACSIIでこれを行う方法は?('a' = 97、z = '121')