保存密码不能用明文保存,用MD5或者sha1哈希化是安全,但是随着硬件的发展,可能会暴力破解,目前能够对抗暴力破解的哈希算法是 bcrypt,Yii提供了两个帮助函数使用crypt进行安全的哈希加密
1. generatePasswordHash($passowrd)
第一个用户注册时候,输入密码,在保存的时候,将密码加密
$hash = Yii::$app->getSecruity()->generatePasswordHash($password)
2. validatePasword($password,$hash)
对用户输入的登录密码进行验证
3. 该组件还可以生成一个安全伪随机数,例如重置邮件密码,生成一个令牌,令牌的唯一性和难解性非常重要,可以使用该组件生成一个随机数,但是必须安装openssl
$key = Yii::$app->getSecurity()->generateRandomString();
4. 该组件还提供了加密解密函数, encrtyByPassword和 decryByPassowrd
5. 校验数据的完整性,将安全秘钥和数据生成的哈希前缀到数据上
Yii::$app->getSecurity()->hashData($gendata,$secretKey);
Yii::$app->getSecrity()->validateData($data,$secretyKey);