MySQLパスワードハッシュの長さ

データベース | 2009-03-06  18:02:17

【備忘録】MySQLパスワードハッシュの長さ

JDBCを使い、MySQLにパスワードをハッシュ値で保存しようとした際、
下記のエラーが起きました。

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data truncated for column ‘カラム名’ at row 1

上記のエラーは文字列が大きいため切り捨てを行った際に出る警告みたいです。

ハッシュ値を入れるカラムは20バイト長にしていたのですが、
それが原因だったようです。

というのも、MySQL 4.1 より前は、
PASSWORD() 関数によって計算されるパスワードハッシュは 16 バイト長でしたが、
MySQL 4.1 から、PASSWORD() 関数が、
41 バイトのハッシュ値を生成するようになったためでした。

ということで、該当のカラムの長さを
41バイト長より長いもので設定しなおしたら解決できました。

下記サイトを参考にさせて頂きましたm(__)m
4.3.11. MySQL 4.1 のパスワードハッシュ

Leave a Reply

Theme by othico