問題タブ [tripledes]

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 に答える
720 参照

c# - Informix ENCRYPT_TDES 関数を復号化するための C# トリプル DES 暗号化

Informix 関数 ENCRYPT_TDES を使用して暗号化されたデータを含む列を持つ Informix データベースからのデータがあります。データは SQL SERVER 2008 にインポートされ、Informix の実行中のインスタンスにアクセスできなくなりました。そのデータを復号化するための C# または VB.NET 関数を作成する必要があります。復号化する C# 関数の書き方を知っている人はいますか?

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

php - PHP で文字列エンコードされた 3DES を C# で復号化する

このC#クラスでエンコードされた文字列をPHPで復号化する必要があります(ここにあります)

Web で見つけたさまざまな例を試してみましたが、何もうまくいかないようです。最初の問題は php mcrypt_generic_init の $iv パラメーターにあり、別の問題は php 関数にないパディングにあると思います。上記の c# Decrypt 関数を PHP に変換する方法を教えてください。ありがとうございました。

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

encryption - 最後の文字を切り捨てるTripleDES復号化

TripleDES暗号化と復号化を実装する.NETクラスがあります。コードが多すぎてここに投稿できません。ただし、問題は、暗号化は問題ありませんが、元の平文の長さによっては復号化に一貫性がないことです。他のトリプルDESツールでも同じ値が得られるため、暗号化は問題ないことを私は知っています。

具体的には、元のプレーンテキストの長さが8、16、24、32、40など、つまり8nの場合、最後の文字は結果のプレーンテキストから切り取られます。

暗号化モードはCBCです。キーサイズは24文字(192ビット)です。IVは8文字です。

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

vb.net - VB.Net DES暗号化機能、Triple DESへ

これは私が現在 DES 暗号化のために持っているものですが、私は VB.Net にかなり慣れていないので、DES ではなくトリプル DES を使用する方法を理解できます。

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

c# - PHP の MACTripleDES

MACTripleDESC#クラスに相当する MAC TripleDES を取得しようとしています。

以下を試してみmcrypt()ましたが、それは TripleDES でのエンコードにすぎません。メッセージを認証するために C# で生成されるものと同等の MACTripleDES 文字列を取得する必要があります。

PHP の関数も調べましたhash_hmac()が、TripleDES で MAC を生成するオプションはありません。

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

.net - Triple DES を使用して情報を復号化する際の不正なデータ

web.config の情報などの機密情報を保護するために、.Net 経由で mvc アプリケーションに取り組んでいます。トリプル DES を使用して情報を暗号化および復号化する 2 つの機能がありますが、これは初めてで、到達することに成功しました友人の助けによって。

暗号化機能は正常に機能しており、正しい文字列を返しますが、同じ文字列を復号化しようとすると、取得しています

Exception Details: System.Security.Cryptography.CryptographicException: Bad Data.

Decrypt 関数のこの行のエラー:

Results = Decryptor.TransformFinalBlock(DataToDecrypt, 0, DataToDecrypt.Length);

コメント付きのコードとして含めたいくつかの方法で解決しようとしましたが、役に立ちませんでした。親切にこれを手伝ってください。

0 投票する
0 に答える
6111 参照

java - Javaを使用したDUKPTの実装プロセスと16進数文字列をDESキー(ByteArray)に変換する方法

VISA DUKPT アルゴリズムを実装して、トランザクション KSN からトランザクションごとに一意のキーを生成しようとしています。ANS X9.24-1:2009 によって提供される情報を順を追って説明しましたが、取得している IPEK は例で提供されているものと同じではありません。暗号化/復号化/暗号化には、弾む城 API を使用しています。例で提供されているキー (BDK) は 0123456789ABCDEFFEDCBA9876543210 です。これは、暗号化キーの長さが 2 倍であることを理解しています。

  • key1 (暗号化 DES) = 0123456789ABCDEF
  • key2 (復号化 DES) = FEDCBA9876543210
  • key3 (暗号化 DES) = key1 = 0123456789ABCDEF

DES を使用している間は、8 バイトのキーしか使用できないため、16 の 16 進文字列を 8 バイト配列に変換する必要があることを知っています。(ここで何かをしているのかどうか疑問があります。コードのこの部分はチュートリアルから取得しています)

これは、現時点で疑問がある唯一の部分です (Java で 16 進文字列を DES キー (ByteArray) に変換する方法)。TripleDES の実装には、弾む城を使用しています。

IPEK を計算するプロセスの説明は次のとおりです。

ベース派生キー (BDK) からの初期キー (IPEK) の派生。

最初の PIN エントリ デバイス キー (最初に PIN エントリ デバイスにロードされたキー) は、次のプロセスによって生成されます。

  • 21 ビットの暗号化カウンターを含むキーのシリアル番号全体を、右寄せで 10 バイトのレジスターにコピーします。キーのシリアル番号が 10 バイト未満の場合は、左側に 16 進数の「FF」バイトを埋め込みます。
  • この 10 バイト レジスタの最下位 21 ビットをゼロに設定します。
  • この 10 バイト レジスタの上位 8 バイトを取得し、倍長の派生キーを使用してこれらの 8 バイトを暗号化/復号化/暗号化します。手順 3 で生成された暗号文を初期キーの左半分として使用します。
  • 手順 2 の 10 バイト レジスタから上位 8 バイトを取得し、16 進数の C0C0 C0C0 0000 0000 C0C0 C0C0 0000 0000 で XOR された倍長派生キーをキーとして使用して、これらの 8 バイトを暗号化/復号化/暗号化します。
  • 手順 5 で生成された暗号文を初期キーの右半分として使用します。

前の説明の単語ごとに、キーの左半分を取得しています

67450505DF3A84FF

規格による期待値は

6AC292FAA1315B4D

提供される KSN は 9876543210E00000 です

暗号化/復号化/暗号化を開始する前に手順 1 ~ 3 を実行した後、処理されるテキストは次のとおりです: FFFF9876543210E0

私の TripleDES 実装は次のとおりです。

ご覧のとおり、ECB モードを標準推奨として使用し、IV が 00000000 の CBC モードも使用しようとしましたが、両方のアプローチのどちらも機能していないようです。

アドバイスが必要です。

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

c# - C#のTripleDESCFBの16ビットブロックサイズ

レガシーソフトウェアによって暗号化されたデータを復号化する必要があるアプリケーションをC#で作成しています。レガシーコードは、暗号化されていないバイトを8のチャンクでループし、CBCモードのTripleDESを介して暗号化します。次に、残りの量のブロックサイズ(この特定の場合は2)を使用して、TripleDESCFBを使用して残りのバイトを処理します。

64ビット(8バイト)のブロックサイズが可能であるため、System.Security.Cryptography.TripleDESを使用して、C#の最初のフェーズからデータの暗号化を解除できます。ただし、 TripleDESクラスでは、16ビットのブロックサイズは許可されません。次のコードは、「指定されたブロックサイズはこのアルゴリズムでは無効です」というエラーをスローします。

小さなブロックサイズの性質が弱いため、これが適切に行われていると思います。残念ながら、それは私が立ち往生しているものです。TripleDES / CFBの16ビットブロックサイズをサポートする可能性のある無料のサードパーティライブラリはありますか?または、これを機能させるためにこのデータセットで使用できるトリックはありますか?DESクラスをチェックして、16ビットのブロックサイズをサポートしているかどうかを確認しましたが、ダイスはサポートしていません...

私は暗号化の専門家ではないので、TripleDES用に独自のコード(2バイト以上... grrr)をロールする必要がある場合は、アルゴリズムの詳細に関する簡単な記事が非常に役立ちます。

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

c# - 復号化中の不良データの処理 (TripleDES、.NET)

ユーザーがファイルを編集するシステム用に enc/dec プロセスをセットアップしました。暗号化されたファイルが悪意を持って変更された場合、それを処理して、「ああ、復号化に失敗しました。クリーンなファイルから始めます」と言うことができるようにしたい. しかし、プログラムの実行を停止しない方法で例外を処理する方法がわかりません。

繰り返しますが、完全に有効なデータの復号化に問題はありません。実際の不良データで不良データ エラーが発生し、それを適切に処理する方法を考えています。エラーが発生すると、CryptoStream はファイルを閉じることができないため、平文ファイルで上書きしたり、他のものに使用したりすることはできません。

ところで、これはLabViewで使用されている.NETコードです。ここにコードを貼り付けることはできません。