PHP实现加密的几种方式介绍(2)_PHP教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:php使用parse_url和parse_str解析URL
本文主要向大家介绍了php中2个解析URL的方法(parse_url和parse_str),以及这2种方法的简介和用法,十分全面,推荐给有需要的小伙伴们。 PHP中有两个方法可以用来解析URL,分别是parse_url和parse_str。 parse_url 解析 URL,返回其组成部分 mixed parse_url ( string

返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码不同。

string urldecode ( string $str )

解码给出的已编码字符串中的任何 %##。 加号('+')被解码成一个空格字符。

这是一种可逆加密,urlencode方法用于加密,urldecode方法用于解密,执行如下代码:

$url = 'http://www.xxx.com/CraryPrimitiveMan/';
$encodeUrl = urlencode($url);
echo $encodeUrl . "\n";// 如果是在网页上展示的,就将\n修改为<br/>
echo urldecode($encodeUrl);
得到的结果如下

http%3A%2F%2Fwww.xxx.com%2FCraryPrimitiveMan%2F
http://www.xxx.com/CraryPrimitiveMan/
基于RFC 3986的加密URL的方法如下:

 

代码如下:
function myUrlEncode($string) {
$entities = array('%21', '%2A', '%27', '%28', '%29', '%3B', '%3A', '%40', '%26', '%3D', '%2B', '%24', '%2C', '%2F', '%3F', '%25', '%23', '%5B', '%5D');
$replacements = array('!', '*', "'", "(", ")", ";", ":", "@", "&", "=", "+", "$", ",", "/", "?", "%", "#", "[", "]");
return str_replace($entities, $replacements, urlencode($string));
}

 

5. Base64信息编码加密

string base64_encode ( string $data )

使用 base64 对 data 进行编码。

设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。

Base64-encoded 数据要比原始数据多占用 33% 左右的空间。

string base64_decode ( string $data [, bool $strict = false ] )

对 base64 编码的 data 进行解码。

参数

data -- 编码过的数据。

strict -- 如果输入的数据超出了 base64 字母表,则返回 FALSE。

执行如下代码:

 

代码如下:
$name = 'CraryPrimitiveMan';
$encodeName = base64_encode($name);
echo $encodeName . "\n";
echo base64_decode($encodeName);

 

其结果如下

 

代码如下:
Q3JhcnlQcmltaXRpdmVNYW4=
CraryPrimitiveMan

 

推荐phpass

经 phpass 0.3 测试,在存入数据库之前进行哈希保护用户密码的标准方式。 许多常用的哈希算法如 md5,甚至是 sha1 对于密码存储都是不安全的, 因为骇客能够使用那些算法轻而易举地破解密码。

对密码进行哈希最安全的方法是使用 bcrypt 算法。开源的 phpass 库以一个易于使用的类来提供该功能。

 

代码如下:
<?php
// Include phpass 库
require_once('phpass-03/PasswordHash.php')
// 初始化散列器为不可移植(这样更安全)
$hasher = new PasswordHash(8, false);
// 计算密码的哈希值。$hashedPassword 是一个长度为 60 个字符的字符串.
$hashedPassword = $hasher->HashPassword('my super cool password');
// 你现在可以安全地将 $hashedPassword 保存到数据库中!
// 通过比较用户输入内容(产生的哈希值)和我们之前计算出的哈希值,来判断用户是否输入了正确的密码
$hasher->CheckPassword('the wrong password', $hashedPassword); // false
$hasher->CheckPassword('my super cool password', $hashedPassword); // true
?>

 

以上就是本文关于PHP加密方式的介绍了,希望大家能够喜欢。

分享:在Windows XP下安装Apache+MySQL+PHP环境
在整个wamp环境搭建中,本质的工作如下: 1,配置系统对php中dll文件能默认处于调用状态。 在windos下,对dll文件系统默认处于调用状态的,有两种采用的方式。 第一种是:把需要调用dll文件复制到C:\windows\ system32\(如果是Windows 2000操作系统,则为C:\WINNT\ sy

共2页上一页12下一页
来源:模板无忧//所属分类:PHP教程/更新时间:2015-03-12
相关PHP教程