問題タブ [rc4-cipher]
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.
perl - Perl で RC4 を使用しているときに、暗号化されたテキストを取得できません
RC4 で暗号化された資格情報を含むファイルがあります。そのような資格情報をファイルに書き込むためのコードは次のとおりです。
したがって、そのコードは次のようなものを返します:3F9FDCE3891C6B8851
しかし、次のことを試してみると:
表示されることを期待していますlocalhost
が、代わりに大量のバイトが表示されるので、元のテキストを取得するにはどうすればよいですか?
パスフレーズと 16 進数でエンコードされた文字列を使用してオンラインの RC4 デクリプタで確認済みで、オンラインの RC4 デクリプタが返さlocalhost
れるので、暗号化された文字列が正しいことを確信しています。
ありがとう!
PS : 上記の例は隔離された環境で動作しますが、私のスクリプトに関しては動作しません。元の文字列を取り戻すことはできません。
.net - Ruby で復号化するための .net 上の RC4
既知のテキスト キーを使用して .net アプリケーションでテキスト文字列を暗号化し、同じ既知のキーを使用して Ruby で復号化する必要がありますが、これを実現するのに問題があります。文字列のエンコードの問題に関係していると思います。.Net から Ruby RC4 への例は、とらえどころのないことが証明されています。
Ruby側で無効な復号化を受けています。暗号化/復号化は、.net 実装で正常に機能します。しかし、暗号化された値を Ruby 実装にコピーして同じキーを使用すると、元の値が得られません。
以下は私の .net RC4 実装です (これには最高レベルのセキュリティは必要ありませんが、いくつかは優れています) :)
ruby 側では ruby-rc4 を使用しています https://github.com/caiges/Ruby-RC4
java - RC4 暗号化 Java
こんにちは、Java で RC4 アルゴリズムを実装しようとしています。アイデアを理解するのに役立つ例として、次のコードを見つけました。
いくつか質問があります:
上記のコードでプレーンテキストが
int
配列になっているのはなぜですか?このコードをテストすると、奇妙な結果が得られます。誰か説明してもらえますか? テストするコードは次のとおりです。
/li>
結果は次のとおりです: (オリジナルとテキストに戻るは同じではありません) なぜ???
c - 復号化および暗号化されたデータから RC4 キーを見つける方法は?
一連の暗号化されたデータと、その結果の復号化されたデータを示すドキュメントで、いくつかのダンプ分析があります。使用されるアルゴリズムが説明されています (単純な RC4)。欠落している唯一の情報は、暗号化されたデータから復号化されたデータを取得するために使用されるキーです。
このドキュメンテーション資料から自動化されたテストを書いています。独自のキーを選択して、クリアテキストから暗号化されたデータを再作成することもできますが、元のデータの束を暗号化するために使用された元のキーを見つける簡単な暗号解析方法があるかどうか疑問に思います.
キーが非常に小さいため、ブルート フォース アプローチがおそらく可能ですが、よりスマートなアプローチが存在するかどうかを知りたいと思っています。
以下は、私の現在の C 暗号化コードです (OpenSSL を使用):
javascript - RC4 を使用した NodeJS 暗号は空白を生成します
RC4 暗号化文字列を生成する php 関数があります。ノードを使用してその文字列をデコードしたいと思います-理想的には組み込みのCryptoモジュールを使用します。しかし、私はそうすることができません-空白の文字列を取得するだけです。
PHP コードはこちらhttp://code.google.com/p/rc4crypt/
私のJSコードは
出力がありません。openssl list-message-digest-algorithms を使用して、OpenSSL 実装に RC4 があることを確認しました
私はOSX 10.8の最新ノードを使用しています。
別のモジュールを使用して復号化することにオープンです-cryptojsモジュールを試しましたが、それを機能させる方法がわかりませんでした-RC4を試したときにエラーが発生しました。
ありがとう
c# - RC4 アルゴリズム: クライアントが Javascript とサーバーの c# を使用している場合、データを暗号化/復号化できません
IIS でホストされている .NET 4.0 WCF アプリケーション (basicHttpBinding) と、JavaScript RC4 アルゴリズムの実装を使用してデータを暗号化/復号化する内部クライアント アプリケーション システムとの間で、暗号化された (および base64 でエンコードされた) 文字列データを渡す必要があります。
これまでのところ、クライアントによって暗号化されたデータをサーバーに送信してからサーバーで復号化することに成功していません (またはその逆 - クライアントがサーバー応答から受信したデータを復号化する場合)。インターネット上の JavaScript ファイル (および AES) で見つかった RC4 アルゴリズムのいくつかのバリエーションを試しました。
クライアントが使用している RC4 アルゴリズムのバージョンを C# に変換しました ( https://gist.github.com/2185197にある JavaScript ファイル)。JavaScript の暗号化/復号化機能を純粋にクライアント側でテストするための html ページを作成しました。これは機能します。同様に、単体テストを通じて、c# の暗号化/復号化が .NET WCF サービス内でも機能することを確認しました。これらのテストでは、base64 エンコード/デコードはありませんでした。
C# RC4 アルゴリズムを使用すると、暗号化されたデータが base64 でエンコードされ、クライアントが .NET アプリケーションである場合 (サーバーと同じ C# アルゴリズム実装クラスを使用)、ネットワーク経由で送信されるデータの暗号化/復号化を正常に処理できます。
クライアント側の JavaScript (Firebug) および C# (Visual Studio) アルゴリズムを 1 行ずつ調べて、変数値が一致するかどうかを確認しました。コードが (Char を介して) 整数値を文字列に変換する場所を除いて、すべてが一致します。ここでの結果は矛盾しています。以下が問題の行です。
以下は、各実装のコード行です。
C#: var charX = Convert.ToChar(26).ToString();
JavaScript:
Var charX = String.fromCharCode(26);
いくつかの視覚的な違いは、単に Firebug と Visual Studio のレンダリング機能が原因である可能性があります。[私の理解では、どちらも UTF8 でエンコードされた文字列をレンダリングする必要があります]。JavaScript エンジンと JavaScript 言語のエンコーディングが異なることを読みました。そのため、Microsoft は修正 [https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/fromCharCode] を実装しましたが、私が実装しようとしても成功しませんでした。C# コードに実装する必要のあるエンコーディングがいくつかあるかもしれません。しかし、まだ特定されていません
上記の整数値 26 の例のように、変数値が検査されると、C# コードは左矢印を示します。JavaScript は空白を示します。JavaScript の場合、これは W3Shools (http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_fromcharcode) を介して行われたテストと一致しています。
文字処理が JavaScript と C# で一貫していることを確認するために、.NET アプリケーションで何らかのエンコーディングを実行する必要がありますか?
前もって感謝します。
以下は JavaScript コードです。
以下は c# コードです。
stream - rc4 キー回復 (2 つのメッセージ、同じ部分キー)
同じ部分キーで暗号化された 2 つのメッセージがあります。例えば:
C1とC2が「XXXXYYYY」の部分キーを少なくとも回復することがわかっている場合、それは決して変わらないため、RC4で可能ですか?
base64 - 2 台の異なるマシンでの CFML の toBase64() からの異なる出力
最終編集:解決済み、ローカル dev を railo 3.3.4.003 にアップグレードすると問題が解決しました。
いくつかの文字列を RC4 暗号化し、それらを base64 でエンコードする必要があり、同じ入力が 2 つの異なる開発セットアップで異なる出力を生成する状況に陥っています。
たとえば、test2@mail.com
あるマシン (DEV-1) では次の文字列を取得DunU+ucIPz/Z7Ar+HTw=
し、もう 1 つのマシン (DEV-2) では次のようになります。DunU+ucIlZfZ7Ar+HTw=
まず、ここにある関数を使用して rc4 で暗号化しています。次に、次の場所にフィードします。toBase64( my_rc4_encrypted_data, "iso-8859-1")
私が知る限り、rc4暗号化の出力は両方で同じです(または何かが欠けています)。以下は、両方のマシンの SERVER 変数と暗号化機能です。
これは私たちが単に一緒に暮らさなければならないものですか、それとも「適切に処理する」ために私にできることはありますか (より良い言葉がないため)。将来、これが私を噛むのではないかと心配しており、それを回避できるのだろうか.
編集 1: my_rc4_encrypted_data.getBytes() からの出力の戻り値: dev-1:
開発-2:
(エンコーディングは に渡されませんgetBytes()
)
DEV-1 (リモート)
DEV-2 (ローカル)
RC4 機能:
encryption - Python - 16行で出力
出力を 16 行に配置する方法はありますか? また、これらの行には、互いに垂直に並ぶ 16 列が必要です。何もインポートせずにこれを行いたいと思います。