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';
}