問題タブ [node-crypto]
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.
python - Python と Node の間で AES 暗号を使用する際の問題
python( aes-128-ecb
)で文字列を暗号化し、ノードで文字列を復号化したい。以下は私が書いたものです。なぜうまくいかないのかわかりません。
PyCrypto ライブラリ ドキュメント: http://pythonhosted.org//pycrypto/
ノード暗号ライブラリ ドキュメント: http://nodejs.org/api/crypto.html
Python コード
JS コード
javascript - Node.js 暗号 aes-256-cbc-hmac-sha1 が機能しない
Node.js 暗号モジュールで aes-256-cbc-hmac-sha1 アルゴリズムを使用しようとしています。
私がやろうとしていることを示すコードスニペットは次のとおりです。
HMAC が含まれていないアルゴリズムは機能しますが、HMAC のアルゴリズムは機能しません。ステップで失敗しますdecipher.update
。完全な出力:
ただし、HMAC を単独で作成すると、正常に動作します。
私が間違っていることはありますか?それとも暗号モジュールのバグですか? (ノード 0.10.26 と 0.10.28 でテスト、同じ結果)
ありがとうございました
(注、これもバグとして投稿しました: https://github.com/joyent/node/issues/7583 )
node.js - node.js 暗号による PKCS5 パディング
node.js crypto のドキュメントは、パディングが入力ストリームに自動的に挿入されることを示しています。平文の SHA1 ハッシュを計算し、その 20 バイトのハッシュを PKCS5 パディングで AES-256/CBC を使用して暗号化する必要がある単純なテスト プログラムがあります。ここに私のテストコードがあります:
ただし、これにより生成されるファイルの長さはわずか 23 バイトです。適切な PKCS5 パディングがあれば、出力は 32 バイトになると予想していました。私は何が欠けていますか?
node.js - Node.js で Crypto を使用する際のエラー処理
次のように、暗号化/復号化に Node.js の Crypto ライブラリを使用しています。
暗号化部分は問題ありません。また、復号化のために正しいパスフレーズを送信しても問題はありません。私の問題は、復号化のために「間違った」パスフレーズを送信すると、コードが壊れてエラーがスローされることです。
私はそれが起こりたくない。たとえば、復号化関数が「パスフレーズが間違っています」という文を返します。ドキュメントによると、ここにリンクの説明を入力してください createDecipher 関数はコールバック関数を受け入れません。
node.js - decipher.update の暗号化エラー
Node プロジェクト用の JavaScript モジュールを作成しています。
非常にあいまいなエラーが発生します
以下は私のjavalogin.jsファイルです。エラーはdecipher.update(rows[i].CC, 'hex', 'utf8');
行で発生しているようです。
コンソールの出力が得られます。
JavaLogin.js:
javascript - ノード暗号 diffieHellman.setPrivateKey()
Pub Key交換を行うためにNodeでCrypto libを使用しています。これまでのところ.getDiffieHellman('modp5')
、新しい接続ごとに新しい公開/秘密鍵を生成するだけでした。この方法論は、AES 暗号化で使用するシークレットを計算するのに最適です。
ただし、秘密鍵をファイルに保存して、次回の実行時にロードできるようにしたいと考えています。これを行う方法は.getPrivateKey()
and thenのようですが、によって生成されたクラスで.setPrivateKey()
使用すると機能しません。これは実際にドキュメントに記載されています:.setPrivateKey()
crypto.createDiffieHellman
.getDiffieHellman('modp5')
返されるオブジェクトは、上記の crypto.createDiffieHellman() によって作成されたオブジェクトのインターフェースを模倣しますが、キーを変更することはできません (たとえば、diffieHellman.setPublicKey() を使用)。
次のコードを使用して秘密鍵を生成した場合、これを知っています。
後日、同じ秘密鍵をロードするにはどうすればよいですか?
暗号ドキュメントで指定されているRFC2412を調べたところ、グループ 5 の素数が次のようにリストされていることがわかりました。
2^1536 - 2^1472 - 1 + 2^64 * { [2^1406 パイ] + 741804}
241031242692103258855207602219756607485695054850245994265411 694195810883168261222889009385826134161467322714147790401219 650364895705058263194273070680500922306273474534107340669624 601458936165977404102716924945320037872943417032584377865919 814376319377685986952408894019557734611984354530154704374720 774996976375008430892633929555996888245787241299381012913029 459299994792636526405928464720973038494721168143446471443848 8520940127459844288859336526896320919633919
FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1 29024E088A67CC74020BBEA63B139B22514A08798E3404DD EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245 E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F 83655D23DCA3AD961C62F356208552BB9ED529077096966D 670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF
この素数を に入れてみました.createDiffieHellman(prime, [encoding])
。ただし、その後、.setPrivateKey()
キーの長さが正しくないという苦情がありました。
任意の洞察をいただければ幸いです。
javascript - node.js暗号モジュールは16文字以上を暗号化できません
私はまだ暗号に関するすべての用語にかなり慣れていないので、この件に関する私の無知を許してください。node.js の crypto モジュールを使用しているときに、奇妙なことが起こっています。正確に 16 文字のみを暗号化します。それ以上の場合、次のエラー メッセージで失敗します。
私が使用しているコードは次のようになります。
これが 16 文字以上を暗号化しないのはなぜですか? 使用しているアルゴリズムのせいですか?長さを気にせずに何かを暗号化するにはどうすればよいですか?