問題タブ [3des]

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

java - Java で 3DES 暗号化/復号化を使用するにはどうすればよいですか?

3DES を使用して Java で文字列をエンコードするために私が書いたすべてのメソッドは、元の文字列に復号化することはできません。文字列をエンコードしてからデコードして元の文字列に戻すことができる簡単なコードスニペットを持っている人はいますか?

このコードのどこかで非常にばかげた間違いを犯していることはわかっています。これまで私が取り組んできたものは次のとおりです。

** 注: 暗号化メソッドから BASE64 テキストを返しているわけではありません。また、パズルの BASE64 部分で間違いを犯していないかどうかを確認しようとしていたため、復号化メソッドで base64 エンコードを解除していません。

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

c# - TripleDES使用時の暗号化されたデータサイズ

私のプロジェクトの1つでTripleDESを使用するつもりです。私はそれに慣れるためにいくつかの実験をしていました。トリプルDESのブロックサイズは8バイトであることを理解しているので、8バイトのデータを提供する場合、8バイトの暗号化データを取得する必要があると思います。しかし、私が得るものは次のとおりです。

正常ですか?それはそれが機能することになっている方法ですか?トリプルDESを使用しようとしている方法は次のとおりです。

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

php - MCryptを使用した暗号文の復号化(3DES CBCモード)

3DES CBCモードで暗号化された暗号文があり、復号化に問題があります。私は次の情報を持っています(実際の値ではありません):

復号化関数は、このブログ投稿にあるPHPクラスに基づいています。次のようになります。

ただし、3つのキーをアルゴリズムにフィードする方法がわかりません。$key1。$key2。$key3のように、逆の順序でそれらをチェーンしてみましたが、役に立ちませんでした。

どんな助けでもいただければ幸いです。

0 投票する
6 に答える
59960 参照

c# - C# で RSA を使用してファイル (巨大なデータ) を暗号化する方法

私は暗号化が初めてです。秘密鍵/公開鍵を使用すると思われる非対称暗号化アルゴリズムを実装する必要があります。RSACryptoServiceProvider のサンプルを使い始めました。暗号化する小さなデータで問題ありませんでした。しかし、比較的大きなデータ "2 行" で使用すると、CryptographicException "Bad Length" という例外が発生します。

次に、CryptoStream を使用して大きなデータ (またはファイル) を暗号化するサンプルをいくつか見つけ、DES や 3DES などの対称アルゴリズムのみを使用します。これには、CryptoStream のコンストラクターへの入力の 1 つとして ICryptoTransform を返す関数 CreateEncryptor があります!!!

RSA を使用してファイルを暗号化する方法は何ですか?

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

.net - TripleDESCryptoServiceProvider のキーをラップ/保存する方法

DES 暗号化を使用しており、TripleDESCryptoServiceProvider のキーを保存したいと考えています。

しかし、キーは (キー + IV) で構成され、

を使用してXMLファイルに保存しようとしていました

しかし、IV に無効な文字 "=" が XML に含まれているため、例外が発生しました。

対称暗号化キーを保存するより良い方法はありますか?

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

encryption - Triple DES キーまたは初期値の 1 ビットを変更しても、別の暗号化データが得られないのはなぜですか?

一部のデータを暗号化するためにpyDesを使用しています。キーや初期値を 1 ビットでも変更すると、暗号化されたデータがまったく異なるものになることを実証したかったのです。最後の文字を +/- 1 だけ変更するように 16 バイトのキーを設定しました。これにより、少なくとも 1 ビットが異なることになります。ただし、それを行っても、暗号化されたデータの 3 つの異なるインスタンスがすべて異なるわけではありません。

キーまたは初期値のいずれかを少し変更しただけでは、アサーションの 1 つが失敗するようです。私は両方を見てきd1 != d2ましd1 != d3たが、変更内容によっては失敗します。また、入力データが短すぎるだけではないことを確認するために、に変更しようとし'Hello'ました。'Hello' * 50

完全にランダムなキーを作成すると、アサーションはパスします。上記のプログラムでは、d1 != d3失敗します (これらのキーは 1 ビット離れており、k1-k2 は 2 ビット異なります)。

私は決して暗号化の専門家ではありませんが、1 ビットしか離れていない 2 つのキーが同じ暗号化されたデータになる場合、それは、キーをブルート フォースするために必要な労力が 2 分の 1 になったことを意味します。

明らかな何かが欠けていますか?トリプル DES は、非常によく似たキーに対して一意の結果を与えることは想定されていませんか? それとも、これは PyDes のバグですか? 他の誰かが別の実装でこの動作を確認できるでしょうか?


@Chris Jester-Young は、キーの一部のビットがパリティ ビットであるという回答を持っていました。そして、結局のところ、この記事によると:

DES の入力キーの長さは 64 ビットですが、DES で使用される実際のキーの長さはわずか 56 ビットであることに注意してください。各バイトの最下位 (右端) ビットはパリティ ビットであり、すべてのバイトに奇数個の 1 が常に存在するように設定する必要があります。これらのパリティ ビットは無視されるため、各バイトの最上位 7 ビットのみが使用されるため、キーの長さは 56 ビットになります。これは、トリプル DES の有効なキー強度が実際には 168 ビットであることを意味します。これは、3 つのキーのそれぞれに、暗号化プロセス中に使用されない 8 つのパリティ ビットが含まれているためです。

(強調は私のものでした)

そして、これらのパリティ ビットは、まさにこの例で変更していたビットです。

ありがとうクリス!

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

vb.net - vb.netでのdes-ede2の実装

誰かが私がこれを始めるのを手伝ってもらえますか?C++でdes-ede2を使用している一連のアプリの現在のkeygenがあります。

vb.netアプリでそのkeygenによって生成されたキーを検証する必要があります。どこから始めればいいのか、誰か考えがありますか?

私は狂ったようにグーグルしていますが、誰かが私を正しい方向に向けることができることを望んでいます。

ありがとうございました!

0 投票する
3 に答える
5270 参照

iphone - iPhone --- 3DES 暗号化は「間違った」結果を返しますか?

CommonCrypto 機能に重大な問題があります。BlackBerry と Windows Mobile 用の 2 つの既存のアプリケーションがあり、どちらもデータ交換に ECB モードで Triple-DES 暗号化を使用します。どちらでも、暗号化された結果は同じです。

ここで、iPhone アプリケーションに 3DES 暗号化を実装したいので、CommonCrypto に直行しました。 http://www.opensource.apple.com/source/CommonCrypto/CommonCrypto-32207/CommonCrypto/CommonCryptor.h

CBC モードを使用するといくつかの結果が得られますが、Java または C# の結果とは一致しません。とにかく、ECB モードを使用したいのですが、これがまったく機能しません。パラメーター エラーが表示されます...

これは ECB モードの私の呼び出しです...私はそれを少し取り除きました:

t は多かれ少なかれここからのコードです:http://discussions.apple.com/thread.jspa?messageID=9017515 しかし、すでに述べたように、毎回パラメーターエラーが発生します...

kCCOptionECBMode の代わりに kCCOptionPKCS7Padding を使用し、C# と iPhone コードで同じ初期化ベクトルを設定すると、iPhone で異なる結果が得られます。私の出力を bufferPtr から取得することで間違いはありますか? 現在、暗号化されたものを次のように取得しています。

すべての設定を2回、異なるエンコーディングなどを試したようです...私のエラーはどこにありますか?

0 投票する
4 に答える
14622 参照

c# - Javaで同等の.NETTripleDESCryptoServiceProvider

理由を聞かないでください。データの文字列を暗号化/復号化するこのコードが.NETにあります。ここで、Javaで「正確に」同じ機能を作成する必要があります。DESede cryptのいくつかの例を試しましたが、.netのこのクラスと同じ結果が得られるものはありません。

sslの背後に.netwebserbviceを作成して、.netで記述されたこの2つのメソッドを提供しているにもかかわらず、すべての可能性を使い果たすことなく実行するには愚かすぎます。

たぶん、その地域でより関係のあるジャワの人々の何人かは、あなたの頭の上にそれを作る方法を持っているでしょう。

ありがとう !!!


Samle入力/出力

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

vb.net - TripleDES 暗号化 - .NET と ColdFusion が正常に動作しない

TripleDES を使用して、自分の ASP.NET アプリケーションと別の開発者の CF アプリとの間で暗号化されたデータを交換しようとしています。

これが彼のCFコードです(もちろん架空のキーとIV):

これが私のVB.NETです(例外処理などは省略しています):

さまざまな結果が得られています。

頭に浮かぶ明らかなことは、彼が Base64 を使用してパスワードから IV を作成しているのに対し、私は ASCII を使用していることです。

.NET は、IV 用に 6 バイトの配列を取得し、8 バイトを必要とするため、満足できません。

私たちが間違っていることについてのアイデアはありますか?できれば、これを機能させるために(VB.NET)コードに変更を加えることができますか?それとも、2 つの環境間でより適切に機能する別のアプローチで失敗しますか?