6.20 Encrypt使用说明
DoitPHP扩展类Encrypt,用于处理字符串的加密与解密码,生成随机码等操作。加密/解密操作均使用openssl来实现。
注:在使用本类之前,最好先设置加密密钥。设置方法如下:
更改Encrypt扩展类的源代码,Encrypt.php文件第40行代码。将your-secret-code更改为您自己的加密密钥即可。
/**
* 加密字符串(密钥)
*
* @var string
*/
private static $_key = 'your-secret-code';
类方法使用说明:
1、encode($string, $key = null)
字符串加密。
参数说明:
$string : 待加密的字符串
$key : 加密密钥(附加码)。默认:上面提到的源代码中所设置的密钥
2、decode($string, $key = null)
字符串解密。
参数说明:
$string : 待解密的字符串
$key : 加密密钥(附加码) 。默认:上面提到的源代码中所设置的密钥
3、getToken($string, $expire = null, $key = null)
生成令牌加密码(长字符串)。
参数说明:
$string : 所要加密的字符(也可以是随机的)
$expire : 令版密码的有效时间(单位:秒)。默认:两小时
$key : 自定义密钥。 默认:上面提到的源代码中所设置的密钥
4、checkToken($string, $tokenCode, $expire = null, $key = null)
令牌密码验证。
参数说明:
$string : 加密的原字符串
$tokenCode : 所要验证的加密字符串
$expire : 令版密码的有效时间(单位:秒) 。默认:两小时
$key : 自定义密钥 。默认:上面提到的源代码中所设置的密钥
5、randCode($length = 5)
生成随机码。
参数说明:
$length : 随机码长度 (0~32),默认长度:5
举例说明:
例一、加密
Controller文件代码内容如下:
public function indexAction() {
$text = 'now you are on my way';
$hashObj = $this->instance('Encrypt');
$string = $hashObj->encode($text);
echo $string;
}
例二、解密
Controller文件代码内容如下:
public function indexAction() {
$string = '上面例一中获取的加密字符串';
$hashObj = $this->instance('Encrypt');
$text = $hashObj->decode($string);
echo $text;
}
例三、获取随机码
Controller文件代码内容如下:
public function indexAction() {
echo Encrypt::randCode(4);
}
例四、获取令牌加密码
Controller文件代码内容如下:
public function indexAction() {
$string = 'uid_101_name_doitphp';
$hashObj = $this->instance('Encrypt');
$tokenStr = $hashObj->getToken($string);
echo $tokenStr;
}
例五、令牌加密码验证
Controller文件代码内容如下:
public function indexAction() {
$string = 'uid_101_name_doitphp';
$tokenStr = '例四中生成的token加密码';
$hashObj = $this->instance('Encrypt');
$result = $hashObj->checkToken($string, $tokenStr);
echo $result ? 'verify success!' : 'verify failed';
}