首页
开发手册
应用中心
工具
用户中心
FoundPHP 加密算法研究
中文简体
中文简体
English
上一篇
下一篇
### FoundPHP 加密算法研究 FoundPHP 是一个强大的框架,为开发者提供了加密算法,包含php自带的可以让用户更快更方便的使用。 #### 1. PHP加密/解密库 | 方法 | 用法 | 说明 | | ------------ | ------------ | ------------ | | md5 | md5('foundphp'); | 单向加密不可解密,加密出32位字符,大多用于用户密码存储 | | sha1 | sha1($password); | 一种不可逆加密,类似md5加密 | | base64_encode | $str = base64_encode('foundphp'); | 标准base64的加密算法,可以把字符加密成字符与数字组合编码,并且可以解密,通常用于地址栏数据传输或与接口传输 | | base64_decode | $str = base64_decode($str); | 解密标准base64的编码,解密后成为字符串。 | | urlencode | urlencode('http://www.foundphp.com') | 将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页 | | urldecode | urlencode('http%3A%2F%2Fwww.xxx.com') | 解码给出的已编码字符串中的任何 %##。 加号('+')被解码成一个空格字符。 |
#### 2. FoundPHP加密/解密库 FoundPHP 提供了加密库,分别采用ASE与DES方式,需要在data/config.php中配置代码 ``` $config['encrypt']['type'] = 'AES'; //AES与DES $config['encrypt']['key'] = '66054b8866054b8866054b8866054b88'; //对接密钥,AES为32位(对接java采用16位长度字符),DES为8位 $config['encrypt']['iv'] = 'www.FoundPHP.comwww.FoundPHP.com'; //加密偏移值AES为32位(对接java采用16位长度字符),DES为8位 ``` | 方法 | 用法 | 说明 | | ------------ | ------------ | ------------ | | encode | $str = $GLOBALS['FoundPHP_encrypt']->encode('foundphp'); | 采用密钥编码方式,可以解密的加密方式 | | decode | $GLOBALS['FoundPHP_encrypt']->decode($password); | 对应密钥的解密方法 | **用法:** plugin/model/default.php ``` //编码 $str = $GLOBALS['FoundPHP_encrypt']->encode('test code'); echo '加密:'.$str.'
'; echo '解密:'.$GLOBALS['FoundPHP_encrypt']->decode($str); ``` 输出结果: ``` 加密:gQA3/rvsJ9afv1+qXuM0/A== 解密:test code ``` 此方法大多用于跨网站或跨项目需要传输用户信息的时候进行加密,防止被别人解码,只要变更项目的密钥旧的加密串就不可以使用了,所以双方项目只要密钥相同就可以对接数据。 对于传输复杂的数据,我们可以把数组或对象编译成json,再把json的数据进行加密,加密后传输给到另外的项目,项目解密后获得json就可以调用数据。