2011-08-05 23 views
39

私たちはパスワードと復号化する必要のないデータにbcryptを使用しています。node.js:暗号化する必要があるデータを暗号化しますか?

他のユーザー情報を保護するためにはどうすればよいですか。この例では、誰かがdbを取得した場合に備えて、ユーザーの実名をプレーンテキストにしたくないと言うことができます。

これはやや機密性の高いデータですが、時折呼び出す必要があり、プレーンテキストで表示する必要があります。これを行う簡単な方法はありますか?

+4

攻撃者は、データベースを得ることが可能な状況ではなく、暗号化キーあなたもディスク上に保存しているが、頻繁にかなり不自然です。あなたはこれを考えたと確信していますか? –

+24

インターネットはとてもスマートで便利です。質問に答えたり、実質的なガイダンスを提供するのではなく、あなたのアプローチを侮辱することによって、人々が知性を発揮することを選択したときは、素晴らしいことです。 – Secesh

答えて

104

あなたはcryptoモジュールを使用することができます

var crypto = require('crypto'); 
var assert = require('assert'); 

var algorithm = 'aes256'; // or any other algorithm supported by OpenSSL 
var key = 'password'; 
var text = 'I love kittens'; 

var cipher = crypto.createCipher(algorithm, key); 
var encrypted = cipher.update(text, 'utf8', 'hex') + cipher.final('hex'); 
var decipher = crypto.createDecipher(algorithm, key); 
var decrypted = decipher.update(encrypted, 'hex', 'utf8') + decipher.final('utf8'); 

assert.equal(decrypted, text); 
+0

これをより安全にするためにIVを追加することをお勧めしますか?もしそうなら、これは 'crypto'でどのようにするのでしょうか? – Fizzix

関連する問題