YII2.0 secruity

时间:2023-12-28 22:51:14

保存密码不能用明文保存,用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);