加密与解密:
Yii提供了方便的帮助函数来让你用一个安全秘钥来加密解密数据。数据通过加密函数进行传输,这样只有拥有安全秘钥的人才能解密。比如,我们需要存储一些信息到我们的数据库中,但是,我们需要保证只有拥有安全秘钥的人才能看到它(即使应用的数据库泄露)
$data 是你要加密的内容,
$secretKey 是你自己设置的密码,
1
|
$encryptedData
= Yii::
$app
->getSecurity()->encryptByPassword(
$data
,
$secretKey
);
|
随后,当用户需要读取数据时:
$encryptedData 是你要解密的内容
$secretKey 是你自己设置加密时的密码
1
|
$data
= Yii::
$app
->getSecurity()->decryptByPassword(
$encryptedData
,
$secretKey
);
|
但是对字符串进行加密,加密后的字符串是一串乱码,(看起来确实像乱码,具体是什么有待考证),这不利于我们的下一步操作。
我们可以使用base64处理加密后的字符串, 处理后的字符串是由字母和数字组成
应用实例:
//邀请注册
1
|
$id
= Yii::
$app
->user->getId();
//获取登录用户id
|
//加密(此处加密密码设为空)
1
|
$uid
=
base64_encode
(yii::
$app
->security->encryptByPassword(
$id
,
''
));
|
//解密
1
|
$iss
=yii::
$app
->security->decryptByPassword(
base64_decode
(
$uid
),
''
);
|