随手记点

2014年08月12日

php @

见到@array['']这种写法,@无论加在数组前还是方法前都可以隐藏所有错误信息,但是错误还是不该被隐藏。

关于mysql orderBy

流量购后台当初做充值监控的时候,直接把数据取出来然后做循环累加!!!然后被吐槽死!!!事实上只需按时间orderBy即可。数据库内存储的是普通时间,即如:2014-09-28 06:36:36

//按小时分组
group by date_format(`t`.`create_time`, '%Y-%m-%d %H')
//按日分组
group by date_format(`t`.`create_time`, '%Y-%m-%d')
//按月分组
group by date_format(`t`.`create_time`, '%Y-%m')

代码优化后明显感觉查询速度快了很多!!!不要挖坑啊~

加盐及用户登录安全

加salt的意义不是防止针对某个哈希值的暴力破解,是防止使用彩虹表批量破解哈希值。 具体到某一个哈希值,salt也使得攻击者必须使用字典+枚举的方式来破解,同样增加了破解的难度。 加盐是为了防止已有MD5查询网站或者程序直接破解密码。 比如你的密码是admin,MD5值是21232f297a57a5a743894a0e4a801fc3,但是如果你设置一个salt:!@#)(*$%&^,加密函数变为MD5(pass+salt),MD5值变为52cbc7b676eb498c96ac20e854f92f6f,那么那些破解网站或者程序就难以直接找出密码。 当然你的算法可以做得更加复杂如MD5(MD5(salt+pass)+MD5(pass+salt)),即使有人通过注入等漏洞攻击,从数据库获得密码Hash,在不知道密码算法的情况下,他也难以进行密码的破解。