問題タブ [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.
vb.net - TripleDes で暗号化/復号化された文字列に疑問符がある
vb.net と 2.0 Framework で開発された古い Web アプリケーションがあります。アプリケーションは、Windows レジストリに格納されている暗号化された SQL サーバー名の情報を読み取ります。このコード行になると
文字列内に疑問符が表示されます
「P??ARSMEYVDE02」
そしてそれはあるべきです
「PLWARSMEYVDE02」
エンコードを UTF8、デフォルト、または Unicode に変更しようとしましたが、うまくいきませんでした。ここに関数があります
プレーンテキストからの 16 進数としての出力。
2750CCD74152534D45595644455630325C44455656533032272C2745594372797374616C486F73744244272C274372797374616C486F737455736572272C273132337265706F7274696E6721402327
c# - リテール MAC 計算の C# 実装 (ISOIEC 9797-1 MAC アルゴリズム 3)
を使用してMACを計算しようとしています
暗号チェックサムは、ISOIEC 9797-1 MAC アルゴリズム 3 を使用して、ブロック暗号 DES、ゼロ IV (8 バイト)、および 1S09797-1 パディング方法 2 を使用して計算されます。MAC の長さは 8 バイトでなければなりません。
ICC 読み取り専用アクセスを提供する Machine Readable Travel Documents の Technical Report PM より リリース : 1.1 日付 : 2004 年 10 月 1 日。
レポートの値の例を使用しています。
ケンチ: AB 94 FD EC F2 67 4F DF B9 B3 91 F8 5D 7F 76 F2
Kmac: 79 62 D9 EC E0 3D 1A CD 4C 76 08 9D CE 13 15 43
eIFD: 72 C2 9C 23 71 CC 9B DB 65 B7 79 B8 E8 D3 7B 29 EC C1 54 AA 56 A8 79 9F AE 2F 49 8F 76 ED 92 F2
ただし、同じ MAC を取得できず、どうすればよいかわかりません。私の最初の試みは:
結果:
mIFD:1C DE 09 70 4C 0D 9B 12
期待される:
mIFD:5F 14 48 EE A8 AD 90 A7
次に、「ブロック暗号DES、ゼロIV(8バイト)、および1S09797-1パディング方法2を使用したISO / IEC 9797-1 MACアルゴリズム3」を次のように理解したので、すべてのステップを手動で実行しようとしました:(私はこれに基づいていますRasmus Faber の回答ですが、反復ステップのためにデータを 64 ビット ブロックに分割します)
出力は次のとおりです。
eIFD:72 C2 9C 23 71 CC 9B DB 65 B7 79 B8 E8 D3 7B 29 EC C1 54 AA 56 A8 79 9F AE 2F 49 8F 76 ED 92 F2
key1:79 62 D9 EC E0 3D 1A CD
キー 2:4C 76 08 9D CE 13 15 43
結果:
mIFD:AA E3 F3 51 32 ED 34 65
期待される:
mIFD:5F 14 48 EE A8 AD 90 A7
どちらの場合も、予想どおりに異なっていました。私は何が欠けていますか?
お時間をいただきありがとうございます。
c# - C# TripleDESCryptoServiceProvider 暗号化を PHP に移植する
次のコードを使用してデータベースとの間でデータを暗号化/復号化する C# で書かれたプロジェクトがあります。
今、私はPHPで同じことをすることになっています。これまでのところ、次のコードに近づきました。
しかし、C# のコードで暗号化された文字列を復号化できません! 私は暗号化の専門家ではありません。どなたか、どの暗号化アルゴリズムとどのモードを使用すればよいか教えていただけませんか?
c# - 文字列「BHQsZMaQQok=」をデコードします
「 」のような文字列をデコードしようとしていますBHQsZMaQQok=。
文字列について私が知っているのは、それが数値でなければならないということだけです。必要に応じて、さらに暗号化された文字列を見つけることができます。
java - PHP は Tripledes 暗号化のために 32 バイトのキーをどのように処理しますか?
暗号化の初心者であるすべての人に謝罪し、何日もグーグルで検索し、最終的に完全に質問しました。
PHP を使用して、Java TripleDES "DESede/ECB/NoPadding" 関数で読み取り可能なデータを暗号化および復号化する必要があります。
Java には、「F4D5CBDF57FEEDCFA41FD6AFE7BCDFEA」などの倍長の 32 文字のキーがあり、これはバイトに変換され、問題なく暗号化された結果を提供します。(私はコードを持っていません。)
PHP では、mcrypt を介して tripledes、ecb 関数呼び出しで同じキーを試行すると、システムが最大 24 文字を想定しているため、キー長エラーが発生します。
PHP が Java と同じ暗号化結果を生成するには、キーに対して何をする必要がありますか?
php - IV が PHP で長すぎる mcrypt_generic_init
Web サービスからのすべてのデータがトリプル DES 暗号化を使用して暗号化されるプロジェクトに取り組んでいます。私の特定のケースでは、暗号化された URL からクエリ文字列を受信しています。Web サービス プロバイダーは、暗号化 Key_192 と初期化ベクター IV_192 という 2 つの復号化用の値を提供してくれました。これらのキーの長さは両方とも 24 文字です。
PHP で受け取ったクエリ文字列を復号化しようとすると、mcrypt ライブラリを使用しています。一般的な復号化メソッドを初期化するとき、私の機能の一部は次のとおりです。
ただし、コードのその部分を実行すると、次のメッセージが表示されます。
Web サービス プロバイダーは、エラーに関するガイダンスを提供できませんでした。代わりに、次のような行を持つ VB.NET 実装に誘導しました。
mcrypt_generic_init() 関数と同様に、2 つのキーを直接渡します。
IV サイズが暗号方式 (Triple DES) に依存することは理解していますが、関数がサポートしているように見えるよりも長い IV を持っている理由について混乱しています。それはどうしてですか?この種の暗号化に関する私の経験は限られており、クエリ文字列をランダムな文字のフィールドのように見えないものに復号化することはできませんでした.
javascript - PBEWithMD5AndTripleDES/CBC/PKCS5Padding の Nodejs JavaScript 実装
Java で記述されたサーバーと通信する単純な nodejs アプリを作成するには、nodejs に次の機能を実装する必要があります。
nodejsのモジュールを使用していますcrypto
decipher暗号化された情報をサーバーに送信した後、上記の Java コード サンプルにリストされているように、オブジェクトを使用してメッセージを復号化できません。md5一番の問題はパーツだと思います。crypto nodejsモジュールでそれを実装する方法がわかりません。この問題を解決する方法を知っている人はいますか? または、それを達成するための他のモジュールまたはライブラリはありますか?
編集: nodejs の別のモジュールを試しました:node-forge
しかし、いくつかの問題/質問があります。
- JavaScript で正しいアルゴリズムを使用していますか?
- 計算は
saltJava の実装と一致していますか? keyLengthJava実装で使用されているものをどのように判断できますか?initialization vectorJava実装でどのように生成されますか? 最後のコード サンプルでは、 onnode-forgeを指定する必要があります。Javaコードでは、これがどのように行われるかわかりません。私の意見では、クライアントとサーバーで同じでなければなりませんか、それとも間違っていますか?ivcipher.start(iv)iv
php - PHP を使用した TRIPLE DES 暗号化/復号化
私はこのトリプルDES暗号化コードをPHPで持っています
データを次のように暗号化できますxcFEvIdLXc2fjhG1i4iPOQu5L6ahxwZVucDOPqeMM2E=
キーを取得したので、このデータをプレーン テキスト形式に復号化できますか?
こんな感じでやってみた
しかし、私はそれを行うことができませんでした.私がやっていることは間違っていますか?これを復号化する方法を提案してください?暗号化キー自体は、トリプル DES でデータを復号化するために使用されますか?助けてください