web-dev-qa-db-ja.com

警告:aes-256-ctrのカウンターモードにはCipherivを使用してください

ターミナルにこの警告があり、ソースまたはその実際の理由/原因の追跡に問題があります。

_(node:37770) Warning: Use Cipheriv for counter mode of aes-256-ctr
(node:37770) Warning: Use Cipheriv for counter mode of aes-256-ctr
_

残念ながら、提供する情報はあまりありません。私はそれがNodeの問題であることを理解していますが、それを解決する方法がわかりません。 https://nodejs.org/api/crypto.html

ノード-vstable 8.9.0 (bottled), HEAD

package.json

_"dependencies": {
    "axios": "^0.17.0",
    "babel-plugin-wrap-in-js": "^1.1.1",
    "babel-runtime": "^6.26.0",
    "body-parser": "^1.18.2",
    "compression": "^1.7.1",
    "cookie": "^0.3.1",
    "dotenv": "^4.0.0",
    "express": "^4.16.2",
    "express-session": "^1.15.6",
    "firebase": "^4.6.0",
    "firebase-admin": "^5.4.3",
    "isomorphic-unfetch": "^2.0.0",
    "js-cookie": "^2.2.0",
    "lusca": "^1.5.2",
    "next": "^4.1.4",
    "next-redux-wrapper": "^1.3.4",
    "node-sass": "^4.5.3",
    "now-logs": "0.0.7",
    "nprogress": "^0.2.0",
    "orm": "^4.0.1",
    "prop-types": "^15.6.0",
    "raw-loader": "^1.0.0-beta.0",
    "react": "^16.0.0",
    "react-dom": "^16.0.0",
    "react-redux": "^5.0.6",
    "react-stripe-checkout": "^2.6.3",
    "react-stripe-elements": "^1.2.0",
    "react-transition-group": "^2.2.1",
    "redux": "^3.7.2",
    "redux-thunk": "^2.2.0",
    "sass-loader": "^6.0.6",
    "session-file-store": "^1.1.2",
    "styled-jsx": "^2.1.2",
    "timeme.js": "^2.0.3",
    "uuid": "^3.1.0",
    "webpack": "^3.8.1"
  }
_
6
Mathias Asberg

Node 8およびsession-file-storeモジュールに関連する問題のようです。

https://github.com/valery-barysok/session-file-store/issues/65

1
aach

上記の警告用

var crypto = require('crypto'),
algorithm = 'aes-256-ctr',
password = 'test@1234';
var iv = Buffer.from(Array.prototype.map.call(Buffer.alloc(16), () => {return Math.floor(Math.random() * 256)}));
var key = Buffer.concat([Buffer.from(password)], Buffer.alloc(32).length);
var cipher = crypto.createCipheriv(algorithm,password,iv)

createCipherivメソッドでは、iv用に1つのバッファーを作成し、パスワードを含むキー用に1つのバッファーを作成する必要があります。

の代わりに

var crypto = require('crypto'),
algorithm = 'aes-256-ctr',
password = 'test@1234';
var cipher = crypto.createCipher(algorithm,password)

データを暗号に変換している間。警告が削除されます

3
Narendra Maru

私は同様の問題を抱えていましたが、これを実行した後 ノードの問題 そして このセクション の下部を見ると、ランダムな入力なしでaes-256-ctrを使用してシェイクしているように見えますそれを上げることはお勧めしません。これを別のアルゴリズムに更新した後、エラーはなくなりました。

コード内で暗号を使用しない場合、どの部門がこれをスローしているのかわかりません。 createCipherまたはaes-256-ctrを検索する場合があります。

2
Casey

createCipherivメソッドを使用する必要があります

2