PHP實(shí)現(xiàn)加密的幾種方式介紹(2)_PHP教程
推薦:php使用parse_url和parse_str解析URL本文主要向大家介紹了php中2個(gè)解析URL的方法(parse_url和parse_str),以及這2種方法的簡(jiǎn)介和用法,十分全面,推薦給有需要的小伙伴們。 PHP中有兩個(gè)方法可以用來(lái)解析URL,分別是parse_url和parse_str。 parse_url 解析 URL,返回其組成部分 mixed parse_url ( string
返回字符串,此字符串中除了 -_. 之外的所有非字母數(shù)字字符都將被替換成百分號(hào)(%)后跟兩位十六進(jìn)制數(shù),空格則編碼為加號(hào)(+)。此編碼與 WWW 表單 POST 數(shù)據(jù)的編碼方式是一樣的,同時(shí)與 application/x-www-form-urlencoded 的媒體類型編碼方式一樣。由于歷史原因,此編碼在將空格編碼為加號(hào)(+)方面與 RFC1738 編碼不同。
string urldecode ( string $str )
解碼給出的已編碼字符串中的任何 %##。 加號(hào)('+')被解碼成一個(gè)空格字符。
這是一種可逆加密,urlencode方法用于加密,urldecode方法用于解密,執(zhí)行如下代碼:
$url = 'http://www.xxx.com/CraryPrimitiveMan/';
$encodeUrl = urlencode($url);
echo $encodeUrl . "\n";// 如果是在網(wǎng)頁(yè)上展示的,就將\n修改為<br/>
echo urldecode($encodeUrl);
得到的結(jié)果如下
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 對(duì) data 進(jìn)行編碼。
設(shè)計(jì)此種編碼是為了使二進(jìn)制數(shù)據(jù)可以通過(guò)非純 8-bit 的傳輸層傳輸,例如電子郵件的主體。
Base64-encoded 數(shù)據(jù)要比原始數(shù)據(jù)多占用 33% 左右的空間。
string base64_decode ( string $data [, bool $strict = false ] )
對(duì) base64 編碼的 data 進(jìn)行解碼。
參數(shù)
data -- 編碼過(guò)的數(shù)據(jù)。
strict -- 如果輸入的數(shù)據(jù)超出了 base64 字母表,則返回 FALSE。
執(zhí)行如下代碼:
代碼如下:
$name = 'CraryPrimitiveMan';
$encodeName = base64_encode($name);
echo $encodeName . "\n";
echo base64_decode($encodeName);
其結(jié)果如下
代碼如下:
Q3JhcnlQcmltaXRpdmVNYW4=
CraryPrimitiveMan
推薦phpass
經(jīng) phpass 0.3 測(cè)試,在存入數(shù)據(jù)庫(kù)之前進(jìn)行哈希保護(hù)用戶密碼的標(biāo)準(zhǔn)方式。 許多常用的哈希算法如 md5,甚至是 sha1 對(duì)于密碼存儲(chǔ)都是不安全的, 因?yàn)轳斂湍軌蚴褂媚切┧惴ㄝp而易舉地破解密碼。
對(duì)密碼進(jìn)行哈希最安全的方法是使用 bcrypt 算法。開源的 phpass 庫(kù)以一個(gè)易于使用的類來(lái)提供該功能。
代碼如下:
<?php
// Include phpass 庫(kù)
require_once('phpass-03/PasswordHash.php')
// 初始化散列器為不可移植(這樣更安全)
$hasher = new PasswordHash(8, false);
// 計(jì)算密碼的哈希值。$hashedPassword 是一個(gè)長(zhǎng)度為 60 個(gè)字符的字符串.
$hashedPassword = $hasher->HashPassword('my super cool password');
// 你現(xiàn)在可以安全地將 $hashedPassword 保存到數(shù)據(jù)庫(kù)中!
// 通過(guò)比較用戶輸入內(nèi)容(產(chǎn)生的哈希值)和我們之前計(jì)算出的哈希值,來(lái)判斷用戶是否輸入了正確的密碼
$hasher->CheckPassword('the wrong password', $hashedPassword); // false
$hasher->CheckPassword('my super cool password', $hashedPassword); // true
?>
以上就是本文關(guān)于PHP加密方式的介紹了,希望大家能夠喜歡。
分享:在Windows XP下安裝Apache+MySQL+PHP環(huán)境在整個(gè)wamp環(huán)境搭建中,本質(zhì)的工作如下: 1,配置系統(tǒng)對(duì)php中dll文件能默認(rèn)處于調(diào)用狀態(tài)。 在windos下,對(duì)dll文件系統(tǒng)默認(rèn)處于調(diào)用狀態(tài)的,有兩種采用的方式。 第一種是:把需要調(diào)用dll文件復(fù)制到C:\windows\ system32\(如果是Windows 2000操作系統(tǒng),則為C:\WINNT\ sy
- php使用parse_url和parse_str解析URL
- 在Windows XP下安裝Apache+MySQL+PHP環(huán)境
- PHP+APACHE實(shí)現(xiàn)網(wǎng)址偽靜態(tài)
- php使用unset()刪除數(shù)組中某個(gè)單元(鍵)的方法
- php實(shí)現(xiàn)兩個(gè)數(shù)組相加的方法
- php實(shí)現(xiàn)遞歸與無(wú)限分類的方法
- php實(shí)現(xiàn)多維數(shù)組中每個(gè)單元值(數(shù)字)翻倍的方法
- php中有關(guān)合并某一字段鍵值相同的數(shù)組合并的改進(jìn)
- php模擬服務(wù)器實(shí)現(xiàn)autoindex效果的方法
- php瀏覽歷史記錄的方法
- php實(shí)現(xiàn)cookie加密的方法
- php遍歷目錄方法小結(jié)
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-PHP實(shí)現(xiàn)加密的幾種方式介紹(2)
。