ラベル javascript の投稿を表示しています。 すべての投稿を表示
ラベル javascript の投稿を表示しています。 すべての投稿を表示

2010年10月3日日曜日

コンパイラのお勉強なう

学校の図書館で『ふつうのコンパイラをつくろう』を読んでいます。

読み始めたばっかりだけど、こういう自分で創り上げていくのを支援してくれる本もかなり好き。

最近自分が本当にやりたいこと(プログラムで)がなかなか無かったけど、言語処理系はちょっと面白いかも。
というか「コンピュータ触ってるな俺!!」って思えるものが好きなのかもしれない。

この本ではJavaを使ってCに程近い言語のコンパイラ(含むアセンブラ、リンカ)をつくるみたいですが、読み終えたら自分では、C++を使ってJavascriptのコンパイラ(インタプリタになるかも。型付け的に考えて。)を作りたいですね。
ブラウザ上じゃなくて、コンソール上でJavascript動いて欲しい。

もしそれをやるなら、実装するJavascriptのサブセットとしては『JavaScript: The Good Parts —「良いパーツ」によるベストプラクティス』から選びたいですね。
それだけでずいぶん実装も楽になるし、綺麗な言語が作れそう。

夢がひろがりんぐww
だけど、本当にできるかは不安。
時間は掛かるだろうけど、こういうことじっくり進めていきたいですね。

2010年9月23日木曜日

httpsを使わずに暗号化通信 with aSSL 〜結局aSSL使わず解決w〜

前回の記事を書いた時点できっつい予感はしてたんですが、やはりaSSLのPHP版は動かすに至りませんでした。

原因は全然掴みきれてませんが、PHPの環境構築な可能性が一番高い気がしてます。

しかし、所望の暗号化通信自体には成功しました。
今回はjCryptionというライブラリを使用しました。

こいつもaSSLと同じようなものなんですが、jQueryに依存している点、Javascript+PHPのサンプルが文句なしに動く点が違いましたw

今回はこいつの解説とかを特に行ったりするわけではないですが、 ライブラリに付属してくるサンプルが小さくて解りやすくてすぐ動くので、導入はそこまで大変ではないはずです。

おかげさまで、ユーザにメールアドレスやらパスワードやらを送信してもらう際に、暗号化してデータをPOSTすることが可能になりました。


こんな感じで普通にボタンをクリックすると、wiresharkで見たときに、、


こんな感じで、
$_POST['email] === 'someone@somewhere.com'
$_POST['password'] === 'secret'
であることがモロばれです。

そこでjCryptionを使ってやると・・・



メールアドレスもパスワードも、全部 $_POST['jCryption'] という変数に暗号化して収められていることが分かります。

あとはこいつをPHP側で(サンプル通りに)復号化してやれば、目的達成というわけです。


しかしjQryptionにたどり着くまでに色々なライブラリを試しては挫折しを繰り返し、今日はほぼ一日暗号化に費やしてしまいました。非リア乙。

あとは今後このライブラリ周りで改善していきたいことを書いていって本日の記事を締めくくりたいと思います。


  1. こちらで指摘されているとおり、セッションで鍵情報をやり取りするのはよろしくない
  2. 暗号化はRSAの2048bitだが、さすがに処理が重い。ライブラリのソースいじってビット数をもう少し落としたい

2010年9月12日日曜日

prototype.js が全然読みやすくない件

ある程度Javascriptのお勉強も終わったところで、prototype.js のコードでも読んでみようかなと思ったんですよ。
prototype.js のコードは読みやすいって『Head First JavaScript』か『JavaScript:The Good Parts』かに書いてあったし。

めっちゃ読みづらくてワロタ

こことか見る限り、以前のバージョンのは読みやすかったみたいだけど、1.6.1では「洗練」されちゃったみたいです。

古いの入手して読みます。

Javascript 難しいお・・・