問題タブ [scrypt]
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.
c++ - npm モジュール scrypt をインストールしようとすると、「エラー MSB8020: v141 のビルド ツール (プラットフォーム ツールセット = 'v141') が見つかりません」
npm モジュールscryptをインストールしようとしています。
scryptにはnode-gypが必要であることを知っています。グローバルにインストールしました(数回)。また、node-gyp には python 2.7 と MS Build Tools が必要であることも知っています。最新の python 2.7 ビルドをインストールし、MS Build Tools をインストールしました。VS Community Edition 2017 も試してみました。両方を修復して再インストールしようとしました。
また、npmパッケージwindows-build-toolsを(数回)グローバルにインストールしました。
しかし、試してみるとnpm i scrypt
、次のエラーが発生しました。
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): エラー MSB8020: v141 のビルド ツール (プラットフォーム ツールセット = 'v141')見つからない。v141 ビルド ツールを使用してビルドするには、v141 bu ild ツールをインストールしてください。または、[プロジェクト] メニューを選択するか、ソリューションを右クリックし、[ソリューションの再ターゲット] を選択して、現在の Visual Studio ツールにアップグレードすることもできます。[c:\project\node_modules\scrypt\build\copied_files.vcxproj] C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5):エラー MSB8020: v141 (プラットフォーム ツールセット = 'v141') のビルド ツールが見つかりません。v141 ビルド ツールを使用してビルドするには、v141 bu ild ツールをインストールしてください。あるいは、[プロジェクト] メニューを選択するか、ソリューションを右クリックして [ソリューションの再ターゲット] を選択すると、現在の Visual Studio ツールにアップグレードできます。[c:\project\node_modules\scrypt\build\scrypt_wrapper.vcxproj]
ヒントや提案はありますか?
node.js - 同じ入力を指定すると、ノード scrypt ハッシュが同じになるのはなぜですか?
私が使用したほとんどのパスワードハッシュモジュールにはそのような機能があるため、ノードの組み込み暗号モジュール、特にscryptの比較または検証機能を見つけようとしていました。次に、これが不可能なタスクである理由を発見しました。同じパラメーターを使用してこれらのアルゴリズムで生成されたすべてのハッシュは、同じ文字列を生成します (技術的にはバッファー)。これは、実装crypto
を含む のハッシュ関数の多くに当てはまりますpbkdf2
。
なぜこれが安全なのですか?同じ入力を使用して同じパスワード/メッセージを再度生成できないというのは、パスワード/メッセージ ハッシュ関数の (最新の) ポイントではありませんか? これは、さまざまな bcrypt モジュールがどのように機能するか、および scrypt の元のバージョンであり、そこから、私が求めている組み込みバージョンが派生しました。
例えば:
Cryptography
から に引っ越したいので、何よりも安全性が心配なので、最初にこの質問を にしbcrypt
ましたscrypt
。しかし、複数の人が指摘しているように、そして私が恐れていたように、問題は API の設計に関するものです。そうは言っても、受け入れられた回答には、この方法が安全である理由、または切り替えるのに十分安全である理由を含める必要があります(「十分に安全」が十分に安全ではないことを認めます)。私はセキュリティを専攻していましたが、現在は Web 開発者であり、コアの概念はほとんど同じままですが、セキュリティは常に変化しています。