2017-03-20 13 views
0

ノードの暗号を使用して、結果をNodeに記録すると正しいですが、データをフロントエンド(角度)に渡してから結果をログに記録すると配列になります。コードはほぼ同じです。誰かが私に文字列の代わりに配列を与える理由を教えてもらえますか?crypto.computeSecretは文字列ではなく数字の配列を返します。

ノード:

app.get('/crypto', function(req, res) { 

    var group = 'modp5'; 
    var aliceDH = crypto.getDiffieHellman(group); 
    var bobDH = crypto.getDiffieHellman(group); 
    aliceDH.generateKeys(); 
    bobDH.generateKeys(); 
    var publicKeys = aliceDH.getPublicKey('hex') 
    console.log('pubkey: ', publicKeys) 
    var bobSecret = bobDH.computeSecret(publicKeys, 'hex', 'hex') 

    console.trace('Bob: ', bobSecret) 

    res.send(publicKeys) 
}) 

ログイン:

pubkey: 72544df4dbc54e575814a1181eb42540d9220ce12ae47fac062ddd3c2f0c32a8793cfbf68099bebf0cef7aab52189c64e4830327d5bdc3d01f9a698ce86280c92ae9942a774f26b892635836b6bea5a413dc183c3cbfeca5e393e019e9940f47d9cc2d9657a03dc77a386c3892e40e1d23507a28ba285a43e90f817b76c8afd420bcedd0f808487133c17e215b0f5e0a5548a25558f8958a2b5e065c35c409d5db86680aab5499dbf8190677ef4225c93ef43e7b73b8ee69c941d16d292e879d

Bob: 6b078a9ce92b1f272930428cc0b6fc671eb377d936bbe37caffadd5d9d69755afd088236c73a3be8e86009b5de4dc7d32f4389129e332096e7064256469a700158a67cd1e1f59e25cdd135cb0c03bc904e8c5f571ed2c6662fbe8053396ec8dd5082787277644e592957546b43064d4fc9ea79def463e1092d0f54d62dad35a80e1896aeabadf7b44621090e52f45e422c7a0ffbfb9448b94c1c9afed08c4e97a27ba49115c2f87bf7b6547e8fa0b6011672d1ba4442e00bd4caac0f99f44428

角度:

$http.get('/crypto').then(function (res) { 
      var key = res.data 
      console.log(key) 
      var group = 'modp5'; 

      var bobDH = crypto.getDiffieHellman(group); 
      bobDH.generateKeys(); 

      var bobSecret = bobDH.computeSecret(key, 'hex', 'hex') 
      console.log(bobSecret) 

ログイン:

72544df4dbc54e575814a1181eb42540d9220ce12ae47fac062ddd3c2f0c32a8793cfbf68099bebf0cef7aab52189c64e4830327d5bdc3d01f9a698ce86280c92ae9942a774f26b892635836b6bea5a413dc183c3cbfeca5e393e019e9940f47d9cc2d9657a03dc77a386c3892e40e1d23507a28ba285a43e90f817b76c8afd420bcedd0f808487133c17e215b0f5e0a5548a25558f8958a2b5e065c35c409d5db86680aab5499dbf8190677ef4225c93ef43e7b73b8ee69c941d16d292e879d

[174, 55, 88, 166, 67, 161, 206, 242, 245, 45, 4, 212, 164, 86, 84, 227, 65, 87, 190, 127, 204, 185, 217, 9, 66, 239, 242, 36, 211, 133, 195, 17, 208...]

私はそれを推測しているが、私は、公開鍵に渡しているかとは何かを持っているが、私は問題が何であるかを見つけ出すように見えることはできません。それはうまく表示されますが、私はどこにでもこのソリューションを見つけることができません。私はここでまったく同じ質問を見つけましたが、答えはありませんでした。

SIDE注:ノードのバージョンは0.12.16で、角度のバージョンは1.4.7

EDITです:この上に多くのテストを行う、と私はノード側からEXACT同じコードを使用すると、まだ私与えることを見つけますアレイ。つまり、実際には同じコードを使用してHTTP呼び出しを行っても、まだ配列が得られます。

答えて

0

私はついにこの問題を理解しました。私は16進数ですべてを行うように言ったが、実際には鍵をバッファーとして与えていたので、.toString('hex')を追加して最終的に16進数に変換して使用できました。

関連する問題