情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Node.jsでデータのPBKDF2を算出する

使用可能なハッシュ関数の取得

使用可能なハッシュ関数を取得するにはcrypto.getHashes関数を使用します。

var crypto = require('crypto');

var hashes = crypto.getHashes();

返り値として使用可能なハッシュ関数が配列として得られます。

PBKDF2の算出

データのPBKDF2を算出するにはcrypto.pbkdf2関数を使用します。

crypto.pbkdf2('xxx', 'yyy', 10000, 256, 'zzz', function (err, key) {
});

第1引数にデータを指定します。

第2引数にソルトを指定します。ソルトとはPBKDF2の算出に使用する余分なデータです。ソルトが無作為なデータに近ければ近いほど、また、長ければ長いほどPBKDF2はより安全なものとなります。

第3引数に反復回数を指定します。この回数が多ければ多いほどPBKDF2の算出に時間が掛かるようになりますが、PBKDF2はより安全なものとなります。

第4引数にPBKDF2のバイト数を指定します。

第5引数にハッシュ関数を指定します。たとえば、SHA-256の場合にはsha256を指定します。

第6引数にコールバック関数を指定します。この関数の第1引数はエラーオブジェクトであり、第2引数はPBKDF2を格納するバッファです。

サンプルコード1

文字列のPBKDF2を算出し、標準出力に出力します。

crypto-pbkdf2.js

var crypto = require('crypto');

crypto.pbkdf2('this is string.', 'this is salt.', 10000, 256, 'sha256', function (err, key) {
    console.log(key);
});

実行結果

C:\work\node>node crypto-pbkdf2.js
<Buffer c3 7d 02 6d 0b 4e f8 11 c3 38 23 f3 71 a4 d6 65 28 f9 a1 97 07 3a 73 6f 6c da 29 9a 25 e9 6f f9 ff 45 32 ea 28 21 bf 31 e1 90 54 f8 83 65 29 92 93 70 ... >

関連

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-Node.js