paip.提升安全性-----动态KEY
作者Attilax , 1466519819@qq.com
当我们在两个模块间传递数据时,如果在公网上,需要进行签名..
一般常用MD5,使用KEY来签名..常用的加密也有3DES等..
但是这个KEY是静态的,难以防止暴力破解..有可能造成极大的安全隐患..
所以我们需要一个动态KEY。。可以自动更换。。
更换因子,最好的就是时间了。因为时间一直在变化。
以下是我的实现
key=hash(time) //精确到小时/天,根据具体要求而定
sign=hash(data+key)
send(data,sign)
此时,KEY在一小时/一天内是固定的。校验程序根据这个时间段来校验,一旦过了规定的时间,这个KEY就自动动态变化了..达到了动态KEY的目
的..
当然,如果正好在时间交接的那一点,可能造成KEY校验失败。。所以,两个模块需要时间同步,误差一般在一个小时之内就可以了..
此时,可以上推1小时,下推一小时得到一个KEY来校验。。如果几个KEY都失败,才是真正校验失败..
if(checkfail(data+key))
{
tips(check fail);
end()
}
pretimekey=hash(time-1)
if(pretimekey==key)
{ tips(check fail);
end()
}
if(checkfail(data+pretimekey))
{
tips(check fail);
end()
}
nexttimekey=hash(time+1)
if( nexttimekey==key)
{ tips(check fail);}
}
if(checkfail(data+ nexttimekey))
{
tips(check fail);
end()
}
.......sometine sucess........
.............
..............