問題タブ [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.
java - Javaで長い数字の3Des暗号化アルゴリズムを実装しています
プロジェクトに3Des暗号化アルゴリズムを実装しています。
私はこのコードを例として使用しています:
http://www.java2s.com/Code/Java/Security/TripleDES.htm
正常に動作していますが、文字列を送受信する必要がありますが、データベースにクレジットカード番号を保存するためにこれを作成しているため、文字列ではなく長い番号を使用する必要があります。
それを行う可能性はありますか?
特別なキーを使用する必要がありますか、それとも戻り値にキャストする必要がありますか?私は最良の、そして最も正しい解決策を探しています。
私の質問は少しばかげているかもしれませんが、私は迷子になっています。
あなたの答えをありがとう、そして私の貧弱な英語をお詫びします
encryption - MagTekiDynamo暗号化カードリーダーからのデータの復号化
MagTek iDynamo暗号化カードリーダーからデータを復号化するための参照コード(疑似コードであっても)を持っている人はいますか?ANSI X9.24規格は、擬似コードおよび可読性部門に...欠けています...。マスターキー、KSN、および暗号文があり、セッションキーを取得してクリアテキストを取得する必要があります。ここにあるものと同様のアルゴリズムを実装し、KSNのカウンター部分に基づいてループを追加しましたが、それでも実際のカードトラックデータは生成されません。
c# - 3DES は、同じ暗号文に対する複数の反復に対して一貫した復号化を生成しません
コードに 3DES (TripleDES) 復号化ルーチンを実装しましたが、提供された暗号文が前の反復と同じ場合、同じ平文が生成されないことに気付きました。それは非決定論的なようで、私が間違っていることだと確信しています。
私は CBC (IV をゼロにして)、ECB、破棄とクリアの複数の組み合わせを試しました。一貫した出力が得られないようです。
(何らかの理由で、以下の「コード」と「出力」のコード形式が正しく表示されません。申し訳ありません)
コード
出力
c# - C# と PHP でトリプル DES 暗号化を行うと結果が異なる
ログイン用の単純な暗号化システムを作成していますが、小さな問題があります。C# 暗号化関数:
EncryptString("test", "123456")
戻ります"Yjaqhc7RFds="
。
php の同じコード:
を返します"dybhiZYdKG8pNCgCFkbV6g=="
か?私は何を間違っていますか?
c# - Des Cryptographyの2つの方法は、2つの異なる結果を返しますか?
MAC(メッセージ認証コード) CBCチッパー(Ansi x9.9)をまとめたいのですが、サイクルに基づいてMACを計算するサンプルを見つけました。各ラウンドで、暗号化された再利用は次のラウンドのプレーンテキストブロックとXORである必要があります。結果は次のステップに使用されるように作成する必要があり、最後の暗号化された値がMACとして返される必要があるまで、このサイクルが4回繰り返されます。
暗号化キー=0123456789abcdef
テキストは「7654321今が」のASCIIコードです。
テキスト=37363534333231204e6f77206873207468652074696d6520666f7220
時間---プレーンテキスト---------------DES入力ブロック--------DES出力ブロック
1 ---- 3736353433323120 -------- 3736353433323120 -------- 21fb193693a16c28
2 ---- 4e6f772068732074 -------- 6f946e16fad24c5c -------- 6c463f0cb7167a6f
3 ---- 68652074696d6520 -------- 04231f78de7b1f4f -------- 956ee891e889d91e
4 ---- 666f722000000000 -------- f3019ab1e889d91e -------- f1d30f6849312ca4
このサンプルを実装してみました。最初のステップでサンプルと同じ結果が得られましたが、次のステップでは、Des暗号化関数がサンプルの2番目のステップとは異なる結果を返します。ハードウェアデバイスを使用して各Des入力ブロックを暗号化しました。これは、サンプルの戻り値と同じDES出力ブロックを返します。ここで別のDES実装サンプルを見つけましたが、これも正しい暗号化を返します。しかし、msdnでmicrosftの例を使用する私のアプリは、ステップ1を除くステップ2、3、および4で誤った結果を返します。これが私のコードです。
そしてここで私はその機能を使用しました
c# - C#でT-SQLDecryptByPassPhraseを複製する
T-SQLのEncryptByPassPhraseを使用して暗号化されたバイト配列を復号化するC#クラスを作成したいと思います。(はい、SQL Server内で復号化できることはわかっていますが、必要なのは、データベース層と中間層の両方で同等に暗号化/復号化できることです。)
SQLServerのEncryptByPassPhraseとDecryptByPassPhraseがTripleDES対称鍵アルゴリズムを使用していることを理解しています。ただし、SQLServerの暗号化をシミュレートするためにIVが何をすべきかは私にはわかりません。TripleDESCryptoServiceProviderクラスを使用して暗号化/復号化できますが、SQLServerが実行していることを複製するためのキーとIVの正しい実装が見つかりません。
誰かが似たようなことをしましたか?ありがとう!
objective-c - 3DES 暗号化された NSData を NSString に変換したい
私のプロジェクトでは、3DES 暗号化アルゴリズムを使用して一部のデータ (文字列) を暗号化しています。暗号化関数に渡す文字列は、NSData オブジェクトを返します。
次に、NSData を NSString に変換して、その文字列をサーバーに送信できるようにします。
したがって、このコードを使用して NSData を NSString に変換しました
NSString *stringCreated = [[NSString alloc] initWithData:encryptedData encoding:NSASCIIStringEncoding];
しかし、この文字列を印刷すると、コンソールにはほとんど文字が表示されません。その文字までの文字列のみを出力するため、「\ 0」のシーケンスを作成している文字はほとんどないと思います。
でデータをエンコードしようとしましNSUTF8StringEncoding
たが、(null) が返されます。
完全な文字列をサーバーに送信したいのですが、どうすればよいですか?
iphone - iOS 3des 暗号化には多くの null 終端が含まれています。NSData を NSString に変換すると、最初の null 終端になりますか?
この関数を 3des 暗号化に使用しました。
それは働いていますが。しかし、この NSData を NSString に変換すると、 NSString には多くの null 終端が含まれているため、 NSString は最初の null 終端で終了するため、変数にデータ全体を含めることができません。しかし、サーバーで暗号化された文字列を送信する必要があります。NSData を NSString に変換するにはどうすればよいですか。すべてのデータを含む文字列は意味しますか (データに null 終端が含まれている場合。その場合、文字列は終了しません)?
事前に感謝します。
返信ありがとうございます。暗号化されたバイトに含まれているかどうかを確認してください
これらの NSData を NSString に変換するとき。暗号化された NSString を送信する必要があるため、最初の \0 ( null 終了) で終了します。そのため、問題が発生しています。サーバー側がそれを望んでいないため、base64stringを送信できません。彼らは文字列の暗号化を求めていました。
だから私が今何をしているのか、助けてください、そして返信してくれてありがとう。
key - Mifare Ultralight C 3DES キーの変更
Ultralight C カードの 3DES キーを変更しようとしています。ここのいくつかのトピックで見つけたように、アドレス 44-47 に値を書き込むことができます。しかし、使用時に認証できません。デフォルトのキーを書き戻すと、問題なく動作します。
freefare ライブラリの例を見て、これと libnfc フォーラムのいくつかの投稿で、超軽量 C のデフォルト キーが次のようになっていることがわかりました: 425245414b4d454946594f5543414e21
(ASCII の 16 進値) BREAKMEIFYOUCAN!")ですが、クライアントでの復号化にはキーが使用され49454D4B41455242214E4143554F5946
ます。
両方のキーの関係はわかりませんが、一方から他方を生成するには、事前に定義された操作を行う必要があると思います。それが私の失敗の原因です。誰かがそれをやって運が良かったのですか?すべての助けに感謝します
すべてのコードで、このコードを出発点として使用しました。
outlook - OpenSSLを使用したAES暗号化SMIMEメッセージの復号化の失敗
1人の受信者に2通のメール(SMIME暗号化)があります。1つのメールは3DESを使用して暗号化され、もう1つのメールはAES256を使用して暗号化されます。
C#EnvelopedCmsクラスを使用して作成されたメール。
を使用して3DESメッセージを正常に復号化できます
ただし、AES暗号化ファイルでこれを試してみると、OpenSSLはぎこちない出力を出力し、次のコメントで失敗します。
Thunderbirdもメールを開くことができません。ただし、Outlook2010はメッセージを開くのに問題はありません。
問題をトラブルシューティングするための最良の方法は何ですか?オンにできるロギングはありますか?
http://lapo.it/asn1js/でASN.1Decoderを使用して、両方のメールのASN.1構造をすでに調べました。どちらのメッセージも私には問題ないように見えるので、原因は暗号化されたコンテンツ自体にあると思います。