タグ

ブックマーク / tech-blog.tsukaby.com (2)

  • 認証処理を実装するならハッシュはSHAファミリよりBCryptを使おう

    今回は認証のパスワードをハッシュ化する部分についての話です。 パスワードのハッシュ化をもしSHA256などのハッシュ関数でハッシュ化しているのであれば、できればBCryptに乗り換えた方が良いよ、というのが今回の話です。 詳細はここが参考になります。 ようするにSHAは高速を考えて作られたので、パスワードのハッシュ関数向きではない、と。高速に実行できてしまうとそれだけレインボーテーブルの作成が容易になる、ということですからセキュアじゃないですね。 ただ、それでもBCryptとかを使えばストレッチングがいらないよ、という訳ではないようです。あくまで従来通り考え方はハッシュ関数+ソルト+ストレッチングです。 ただ、BCryptの実装であるjBCryptを使うとかなり扱いが楽になるのではないかと思います。どのように楽になるか書いてきます。 jBCryptの使い方 Scalaでも使えますが、今回は

  • MySQLの日付型の扱い方や機能をまとめてみました

    小数部の領域、とありますが、これは0~3 bytesです。小数部が1, 2桁なら1 byte、3, 4桁なら2 bytes、5, 6桁なら3bytesです。 TIMESTAMP型の値の範囲 TIMESTAMPはいわゆるUNIX時間、time_tで、1970年から始まる日付であり、4byteです。そのため、2038年までしか格納できません。MySQLだけではありませんが、2038年問題というものです。利用する時は気を付ける必要があります。 TIMESTAMP型のデータ保持形式(UTC) マニュアルにTIMESTAMPは内部でUTCで持つと書かれています。これがどういうことなのか確かめてみます。 まずは以下のコマンドを実行してみます。 create table TIMESTAMP_SAMPLE(DT datetime, TS timestamp); insert into TIMESTAMP_

  • 1