タグ

ブックマーク / kazuhooku.hatenadiary.org (5)

  • パスワードをソルトつきハッシュ化してDBに保存するのがベストプラクティス…とは限らないという話 - kazuhoのメモ置き場

    フレームワークの責務とセキュリティ - MugeSoの日記についての感想文です。 世の中にはたくさんの通信プロトコルが存在し、中には、特定の条件でパスワードを含む文字列をハッシュ化した値を検証しなければならないものも含まれています。 例えば、HTTP Digest認証の場合は、MD5("realm:user:password")を保存しておく必要がありますし、APOPの場合は生のパスワードを、CRAM-MD5の場合はMD5("password")を保存しておく必要があったはず。 で、こういった様々なプロトコルに対応可能な認証データベースを準備しようとすると、パスワードを復号可能な方式で保存しておく必要があります*1。 ただ、パスワードを復号可能な方式で保存するとか、開発者あるいは管理者としてやりたくないというのはもちろんそうなので。で、長期的には世の中どこへ向かってるかというと: 選択肢a

    パスワードをソルトつきハッシュ化してDBに保存するのがベストプラクティス…とは限らないという話 - kazuhoのメモ置き場
  • なぜ動的型付けの言語が流行ったのか (Re 静的型付けと動的型付けのどちらが優れているかという話) - kazuhoのメモ置き場

    静的型付けと動的型付けのどっちが優れているか。どのようなプログラムを書いているかによって答えはかわるんじゃないの? たとえば、自社で開発・運用しているウェブサービスなら「問題が出たら修正」すればいいんだし、バグがないことを保証するよりも迅速に開発できるプログラミング言語(つまり動的型付けの言語)がいい。 逆に、客先への納品が発生するソフトウェア製品なら「バグがない形で出荷する(様々な状況・環境下でちゃんと動作する)」ことが重要だから、静的型付けの言語を使うことで品質を高めるというのは合理的な選択*1。 細かな論点はいろいろあるだろうけど、基的には、このようなソフトウェア開発に対するスタンスの違いで決まる話だと思います。 別の言い方をすると、動的型付けの言語は流行ったのは、ウェブには前者のアプローチが適していたからだし、スマホアプリには静的型付けの言語がむいていると言えるのでしょうね。それ

    なぜ動的型付けの言語が流行ったのか (Re 静的型付けと動的型付けのどちらが優れているかという話) - kazuhoのメモ置き場
  • CPAN 階層の深いモジュール王選手権 - kazuhoのメモ置き場

    CPAN 長いネームスペース大会 - にぽたん研究所 を見て、階層の深さだとどうなるかなと思ってやってみた。 1: perfSONAR_PS::Datatypes::v2_0::nmtl3::Topology::Domain::Node::Port::IpAddress 1: perfSONAR_PS::Datatypes::v2_0::nmtl4::Message::Metadata::Subject::EndPointPair::EndPoint 1: perfSONAR_PS::Datatypes::v2_0::nmwg::Message::Data::Key::Parameters::Parameter 1: perfSONAR_PS::Datatypes::v2_0::nmwg::Message::Metadata::Key::Parameters::Parameter 1: p

    CPAN 階層の深いモジュール王選手権 - kazuhoのメモ置き場
    maangie
    maangie 2009/02/18
  • Q. 1GB の文字列を strlen するのに必要な時間は? - id:kazuhookuのメモ置き場

    1GB の文字列を strlen するのに必要な時間は何秒でしょう? こういったものをぱっと予測できることは、最適化に取り組む上で必要かなぁ、と思ったので、自分の理解が正しいか確認するためにも、実測してみました。 (以下、白地に白文字で書いてあるので、選択して読んでください) 手元の Linux (Pentium 4 @ 3GHz / DDR2-667) では、約 0.48 秒 (2.1GB/sec)。GCC の組み込み程度の strlen では、ボトルネックはメインメモリの帯域あるいはレイテンシではなく、CPU になります。 一方、SSE で記述された strlen *1 を使用すると 0.26 秒 (3.9GB/sec)。こちらはメモリ帯域がボトルネックになっているようで、手元の MacBook (Core 2 Duo @ 2GHz / DDR2-667) でも、ほとんど同じ数値になり

    Q. 1GB の文字列を strlen するのに必要な時間は? - id:kazuhookuのメモ置き場
    maangie
    maangie 2008/10/06
    「こういったものをぱっと予測できることは、最適化に取り組む上で必要かなぁ、と」
  • リモートサーバに接続できない場合の telnet による原因切り分け方法 - kazuhoのメモ置き場

    1) telnet host port して Escape character is ... と出た後、すぐ (あるいは少しして) 接続が切れる → 接続後 fork() 等で落ちている → サーバのメモリ不足やプロセスの無限増殖を疑う 2) telnet host port して Escape character is ... と出るが、その後何も起こらない → SYN_ACK が返ってきている → カーネルは生きている。ユーザーランドの負荷が極めて高い可能性 3) telnet host port して、すぐ connection refused と出る → RST が返ってきている → port が閉じている (サーバプロセスが落ちた?) か、または accept(2) していない 4) telnet host port して、しばらくたってから connectin refused

    リモートサーバに接続できない場合の telnet による原因切り分け方法 - kazuhoのメモ置き場
    maangie
    maangie 2008/03/23
  • 1