問題タブ [pidcrypt]
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.
javascript - RSAキー番号をOpenSSL互換のキーに変換する方法は?
javascriptのみで秘密/公開RSAキーを生成できるようにしたい...
これまでのところ、http://www.hanewin.net/encrypt/rsa/rsa.htmを見つけました。これには、私が見つけた唯一のJavascriptRSAキージェネレーターが含まれています。ラッパーを作成しました(デモページからコードを変更します(リンクを参照))。キーのラッパーは次のとおりです。
問題は、出力が実際の数値(指数、モジュラスなど)として提供されることですが、OpenSSL形式(base64でエンコードされたもの)のキーが必要です。誰かがOpenSSLキーデータの形式を教えてもらえますか、それとももっと良いです-そのサイトのコードで生成されたキーをOpenSSLキーに変換するにはどうすればよいですか?
結果をpidcrypt(js暗号ライブラリ)とruby/opensslで使用したい...
提案ありがとうございます...
javascript - php mcrypt から javascript aes への統合
javascript を使用して、AES-256-CBC および php mcrypt ライブラリでデータをエンコードしてデコードしようとしています。
私は、javascript の問題のある性質と、誰もがキーを見ているという事実を認識していますが、Web 以外の環境用のスクリプト ツールである javascript を使用しているので、心配していません。
pidder https://sourceforge.net/projects/pidcrypt/を見つけました
デモページでいくつかのデータを暗号化し、php経由で復号化しようとしましたが、何かが間違っていて、何が見つからないようです...両端で同じキー、32バイト文字列を使用しています
任意のポインタをいただければ幸いです
~~~
~~~
javascript - Javascript + pidCrypt による PHP 暗号化
Web サイトで安全な情報を渡すための暗号化メカニズムの実装に取り組んでいます。私のホストは SSL に追加料金を請求しますが、私は追加の金銭的責任を負う準備ができていません。
pidCryptを使用して、javascript を介してクライアント側の値を暗号化しようとしました。次に、PHP 側で暗号化を解除するためのいくつかの手法を試しました。なんらかの理由で、データが文字化けします。
誰かが私が間違っていることを指摘できますか? または、暗号化に別の JavaScript ライブラリを使用する必要がありますか? 何かアドバイス?
ページの入力から暗号化するテキストを取得し、ページの非表示のテキスト領域から公開鍵を取得する JavaScript コードを次に示します。
これは、値を復号化することになっている私の engine.php コードです。さまざまな例からいくつかの異なる方法を試したことに注意してください。
復号化する値に「test」と入力すると、PHP に次のように表示されます。
そのため、openssl_private_decrypt() 関数も DecryptData2() 関数も値を正しく復号化できません。ただし、EncryptData2() と DecryptData2() は連携して動作します。
何か小さなものを見逃している可能性はありますか?何かアドバイス?
編集:キーを作成するために使用したコマンドは次のとおりです-
これにより、秘密鍵が作成されます。
これにより、公開鍵が作成されます。
javascript - pidCrypt を使用して AES CBC を暗号化し、phpseclib で復号化する方法は?
Javascript ( pidCrypt AES CBC )を使用して短い文字列を暗号化し、 PHP ( phpseclib Crypt_AES CBC ) を使用して復号化する必要があります。
さまざまなライブラリ間に非常に多くの非互換性があり (それらの多くを試しましたが、ドキュメントが不足しているため使用を開始できなかったものもあります)、それらを理解し、克服しようとして頭を悩ませています (現在の「標準」は単に互換性がありません)。デバッグをカバーしておらず、意味不明または単にfalse
間違った使用法で a が返されます)。
pidCrypt AES CBC は、OpenSSL 互換のエンコーディングを使用していると述べています。
これまでのところ、pidCrypt からの出力が phpseclib で復号化されない理由がわかりません。
pidCrypt
phpseclib
phpseclib AES CBC モードの "Key Derivation: None" の例 (setPassword の代わりに setKey と setIV) も試しましたが、結果は同じでした。
phpseclib で上記の pidCrypt AES CBC 出力をデコードするにはどうすればよいですか?
また
上記の pidCrypt 出力を復号化できる phpseclib の代替手段はありますか (コード API があります。OpenSSL の使用例は許可されていません)。
Javascript セキュリティとネットワーク セキュリティに関する講義はご遠慮ください。これは、インターネット/ネットワーク スニッフィングから保護するためのものではありません。
javascript - Javascript と Python 間の RSA 通信
私はプロトタイプに取り組んでいるので、Chrome 拡張機能と Python サーバーの間で RSA を使用する必要があります。
これまでのところ、https://sourceforge.net/projects/pidcrypt/とhttps://www.dlitz.net/を使用する予定でした。ただし、ドキュメントに従って復号化と暗号化を機能させることはできますが、互いのメッセージを復号化することはできません。
相互運用するライブラリを提案するか、このライブラリで何か問題があるかどうかを教えてください。
私が調べたところ、pidder は RSA PKCS#1 暗号化スタイルのパディング (タイプ 2) を使用します。グーグルで調べたところ、PyCrypto が PKCS1_OAEP を呼び出すタイプであることがわかりました。よくわかりませんが、標準と他の2つを試しました。
助けていただければ幸いです。
javascript - RSA - PyCrypto および Javascript RSA ライブラリ (PidCrypt) エンコーディングの問題
Chrome 拡張機能と Python Web サーバーの間で RSA でエンコードされた文字列を送信する必要があります。返信には、暗号化された文字列も含まれている必要があります。通信は間接的であるため、SSL を使用して両者の間を仲介する間にサーバーがあるため、SSL は機能しません。
ライブラリが異なるスキームを使用しているかどうかはわかりません。知っている人が教えてくれたら、それは素晴らしいことです。各ライブラリからの出力は異なります。エンコーディングを互いに適合するように変更しようとしましたが、うまくいきませんでした。
ライブラリ: https://sourceforge.net/projects/pidcrypt/およびhttps://www.dlitz.net/
PyCrypto を使用したコード:
JS を使用したコード: Chrome JS コンソール
js の関数:
ある暗号化された出力を別の暗号化された出力に使用しようとすると、ガベージが返されます。何か案は?
javascript - pidcrypt と openssl_encrypt の互換性の問題
私は、エンド ユーザーがブラウザからクイズを受けられるようにするアプリケーションを設計しています。要件の一部は、クイズの開始時間になったら、質問をすべての参加者に一度に表示する必要があることです。これにより、サーバーからエンドユーザーに質問を提供することは合理的ではなくなります。これにより、リクエストが突然バーストすることにつながるため、接続したらすぐに質問を提供し、クイズの開始時間まで 2 時間以内にするつもりです。問題は、競技であるため、質問は開始時間までに表示されるべきではないため、暗号化する必要があることです.
私は 2 段階で暗号化することに決めました。暗号化の最初の段階では、キーの交換に非対称 RSA 暗号化を使用し、成功しました。このキーは、サーバーとクライアントの間で送信されるその他のデータを暗号化するために使用されます。
問題は対称暗号化の部分です。openssl_encrypt メソッドを使用してサーバー側で暗号化し、クライアント側で pidcrypt (javascript 暗号化/復号化ライブラリ) で復号化しようとしています。pidcrypt では iv (初期化ベクトル) の長さが 8 バイトである必要があることが判明しましたが、AES-256-CBC モードを使用する openssl_encrypt では 8 バイトが許可されず、代わりに常に 16 バイトが要求されます。私は多くの順列と実験を行ってきましたが、うまくいきませんでした。pidcrypt のドキュメントには、openssl と互換性があると記載されていたので、私の質問は、何が間違っているのでしょうか? 以下は、PHPを使用してサーバー側で暗号化するコードです
このコードが常に返す 16 バイトではなく、$iv_len を 8 バイトにする方法はありますか? このセットアップ全体に正しい方法でアプローチしていますか? ありがとう
java - javascriptを使用してクライアント側で復号化しますか?
AES-256 ビットと SHA-256 (2048 ビット) を使用してサーバー (Java を使用) で暗号化されたクライアント側で暗号化されたテキストを取得していますが、それを復号化する方法がわかりません。(サーバー側で暗号化の目的で使用されたキーをクライアント側に持っていて、対称キー暗号化を使用している場合)。
私はこれにSJCLを使用しており、このコードを試しました
しかし、それはエラーを与えています
"json デコード: これは json ではありません!"
他のライブラリを提案できる場合(コードとともに)。
どんな助けでも大歓迎です。
編集-
はい、AES-256 のキーとして SHA-256 を使用していましたが、さらに先に進むには SHA-256 を使用しないため、AES-256 で暗号化されたデータを復号化する方法についてのみ回答が必要です。
編集-
復号化しようとしていたデータは、sjcl にはありませんが picrypt の cbc モードを使用して暗号化されていたため、pidcrypt で試してみました。次のコードを試しました。
null(エラーなし)を返していますが、これの何が問題なのですか?