あたしにゃ~そういう難しいことはわからないですがね(こん平風)、共通鍵暗号方式というのは、とある文字列を暗号化してしまう為に使う鍵(パスワード)と、暗号化したものを元に戻す復号化に使う鍵が一緒、というのが、共通鍵暗号方式つーらしいんですわ。cryptというのは暗号化、復号化するためのプログラムのことで、直訳は「(ドーム型)地下室」という意味らしいですね。
ということで、今回はNode.jsのcryptを使って、データの暗号化と復号化の方法を簡単なサンプルを用いて紹介します。
暗号化 cryptはNode.js自体の機能なので、npm isntallする必要はなく、そのままrequireすれば使えます。
js 1
2
3
4
5
6
7
8
9
var crypto = require('crypto'); // 'password'のところが、共通鍵です。 var cipher = crypto.createCipher('aes-256-cbc', 'password'); var text = '共通鍵暗号方式' var crypted = cipher.update(text, 'utf-8', 'hex'); crypted += cipher.final('hex'); console.log(crypted); // 暗号化された文字列→1c0d50c3e73e352066353f8dd40a16af4f8160d8199f3858ec8a674b58b2e4fc 表示された文字は、ちゃんとごちゃごちゃした文字になったと思います。今度はこれを複合化します。
復号化 js 1
2
3
4
5
decipher = crypto.
TwitterのBootstrapのプラグイン、dropdownを使っていた時に、吹き出しの中身がクリックできないことが起こりました。結局たいしたことではなかったんですが、はまってしまったのでメモします。
Google Chromeの要素の検証をしたときに下からペロッと出てくる右下に、歯車のアイコンがあると思います。少し古いChromeにはないかもしれません。
ちょっと黒い画面がオーバーレイすると思います。そこにあるタブメニューのOverridesという項目を選ぶと、User Agentをシュミレートできるようになります。この際、iPhoneやAndroidなどのスマートデバイスを選択したときに、一番下の項目、Emulate touch eventにチェックが入ると思います。これはそのまんまの、Chromeにタッチイベントをエミュレートしてくれるチェックボックスなんですが、これがONになっているときに、Bootstrapのdropdown、吹き出しの中身がクリックできないので、チェックを外すとクリックできます。
Node.jsでObjectをconsole.logした時に、[Object, object] と出てしまう時があります。その中身がみたいですよね。PHPに例えるとのvar_dumpに相当する方法です。
js 1
2
3
4
5
// utilモジュールを使います。 var util = require('util'); // inspectで中身を見ることができます。 console.log(util.inspect(object)); とても簡単ですね!
js 1
2
3
4
5
function dump(v){ return console.log(util.inspect(v)); } dump(object); こんな感じにメソッドを作っておいて、console.logの代わりに使ってしまうのもありですね。
前回の、 【Node.js】OAuth認証でPassportが最強に使いやすい の続きです。今回は準備から実際にコーディングのところまで説明します。
検証、制作環境など Mac OS 10.6 ターミナル.app node.js -v v0.8.4 express version 3.0.0rc3 jadeを使いたいと思います。 node-oauth node_modules localhost:3000で検証 さっそく準備をします。 # expressでnode-passportとう名前のディレクトリを作ります。 # 名前はなんでもいいですが、今回はそうします。 # -sでオプションでセッションをつけます。 $ express -s node-passport # node-passportに移動してnpm installします。 $ cd node-passport $ npm install # passport, passport-facebook, passport-twitterのmoduleをインストール。 $ npm install passport $ npm install passport-facebook $ npm install passport-twitter これで準備完了です。app.jsを開いて、コードを書き足していきます。
app.js 1
2
3
4
5
まず何が最強なのかは対応しているSNSがズラッと! Local (username and password) BrowserID OpenID OAuth (OAuth 1.0 and 2.0) SAML by Henri Bergius WS-Federation + SAML 2.0 by Auth10 WebID by Baptiste Lafontaine 37signals 500px by Jeremy Benaim AngelList AOL App.net by Michael Owens Bitbucket DailyCred by Hank Stoever Digg Dropbox Dwolla Evernote Facebook FamilySearch Fitbit Flattr by Johan Uhle Flickr by Johnny Halife Force.com (Salesforce, Database.com) by Joshua Birk Foursquare FreedomWorks by Carlos Rodriguez Geoloqi GitHub Goodreads Google (OpenID) Google (OAuth 1.
CoffeeScriptとは、JavaScriptをRubyライクに書くことができるプログラム言語です。何が良いって、プログラミングが速くなる!みたいです。僕はまだまだ慣れてません!ので、慣れるためにNode.jsをCoffeeScriptで書いてみようと思い、その手順と導入方法をメモします。
CoffeeScriptをインストールする。 必要に応じて-gオプションを付けます。
$ npm install -g coffee-script CoffeeSciptのcall optionは-hのヘルプで確認できます。
$ coffee -h http://codezine.jp/article/detail/6391
sublime http://memo.devjam.net/clip/909
いままで、FlashのActionScript3.0や、Ajaxを使ったり、PHPなんかも駆使してOAuthを実装していました。node.jsではnode-oauthというモジュールを使えば、いとも簡単にOAuth認証ができてしまいます。いとも簡単とはいえ、はまったところがありましたので、今回はnode-oauthを使ってTwitterをOAuth認証する方法と、はまってしまったポイントを抑える内容にしたいと思います。下記の参考サイトに載っていたソースを元に補足します。
参考サイト - http://moonlitscript.com/post.cfm/how-to-use-oauth-and-twitter-in-your-node-js-expressjs-app/ - ciaranj/node-oauth · GitHub - https://github.com/ciaranj/node-oauth
検証、制作環境など Mac OS 10.6 山ライオンって強いの?(´・ω・`) ターミナル.app node.js -v v0.8.4 express version 3.0.0rc3 node-oauth node_modules localhost:3000で検証 TwitterのOAuth認証ができるまでの手順 dev.twitter.comで「Create an app」します。 Website:にはlocalhost:3000を入力したいところですが、Twitterの入力フォームで弾かれるので、localhostと同じURLのhttp://127.0.0.1:3000を入力します。 Callback URL:には、http://127.0.0.1:3000/auth/twitter/callbackと入力しておきます。 必要な情報を入力して、Consumer keyとConsumer secretを取得します。※1 ターミナル.appを開いて、express -sセッションオプションを付けて雛形を作ります。※2 node-oauthをnpm installします。 app.jsを開いて、コーディングします。 $ node app.js でサーバーを立ちあげてアクセスします。 ※1:Consumer keyとConsumer secretの扱いは大切に。 ※2:expressでセッションを使うオプションを使うところが重要なポイントです。 node-oauthのインストール方法 やはり毎度おなじみnpmを使います。expressを使って雛形を作るまでやってみましょう。
//-e はejs、-sはセッションを使うオプション $ express -e -s oauth_sample create : oauth_sample create : oauth_sample/package.json create : oauth_sample/app.