賬號激活主要是防止用戶注冊時填寫假的E-mail地址,藉以賬號激活將激活碼發(fā)送至用戶郵箱以便激活賬號。
需要數(shù)據(jù)表的設計:
1,用戶名(Unique)
2,E-mail(Unique)
3,激活碼(Unique)
4,狀態(tài):1:尚待激活;2:已激活
在用戶注冊時,通過用戶名、E-mail及注冊時間(毫秒時間)等信息采用特定的算法,一般采用不可逆的摘要算法,如:MD5、SHA等。生成一組摘要,注冊后將激活碼作為URL參數(shù),比如:www.abc.com/user/activation?code=123456,code的值為激活碼,將這一鏈接發(fā)送E-mail給用戶,在用戶點擊該鏈接后,通過code將這個激活碼的賬號狀態(tài)設為“已激活”即可。由于激活碼是Unique的,所以不可能出現(xiàn)相同的,之所以采用MD5、SHA,是由于MD5出現(xiàn)碰撞的概率很小,SHA則更小,而且Java中也提供了現(xiàn)成的類庫用于產(chǎn)生信息摘要,使用起來比較方便。