亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP加密的幾種方法

2020-03-22 18:56:17
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了PHP實現加密的幾種方式,非常全面實用,都是項目中經常需要用到的,需要的朋友可以參考下

PHP中的加密方式有如下幾種

1. MD5加密

string md5 ( string $str [, bool $raw_output = false ] )

參數

str -- 原始字符串

raw_output -- 如果可選的 raw_output 被設置為 TRUE,那么 MD5 報文摘要將以16字節長度的原始二進制格式返回。

這是一種不可逆加密,執行如下的代碼

$password = '123456';
echo md5($password);
得到結果是e10adc3949ba59abbe56e057f20f883e

2. Crype加密string crypt ( string $str [, string $salt ] )

crypt() 返回一個基于標準 UNIX DES 算法或系統上其他可用的替代算法的散列字符串。

參數

str -- 待散列的字符串。

salt -- 可選的鹽值字符串。如果沒有提供,算法行為將由不同的算法實現決定,并可能導致不可預料的結束。

這是也一種不可逆加密,執行如下的代碼

代碼如下:

$password = '123456';$salt = "test";// 只取前兩個echo crypt($password, $salt);得到的結果是teMGKvBPcptKo

使用自動鹽值的例子如下:

代碼如下:

$password = crypt('mypassword'); // 自動生成鹽值/* 你應當使用 crypt() 得到的完整結果作為鹽值進行密碼校驗,以此來避免使用不同散列算法導致的問題。(如上所述,基于標準 DES 算法的密碼散列使用 2 字符鹽值,但是基于 MD5 算法的散列使用 12 個字符鹽值。)*/if (crypt('mypassword', $password) == $password) {   echo "Password verified!";   }執行結果是輸出 Password verified!

以不同散列類型使用 crypt()的例子如下:

代碼如下:

if (CRYPT_STD_DES == 1) {    echo 'Standard DES: ' . crypt('rasmuslerdorf', 'rl') . "/n";}if (CRYPT_EXT_DES == 1) {    echo 'Extended DES: ' . crypt('rasmuslerdorf', '_J9..rasm') . "/n";}if (CRYPT_MD5 == 1) {    echo 'MD5:          ' . crypt('rasmuslerdorf', '$1$rasmusle$') . "/n";}if (CRYPT_BLOWFISH == 1) {    echo 'Blowfish:     ' . crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$') . "/n";}if (CRYPT_SHA256 == 1) {    echo 'SHA-256:      ' . crypt('rasmuslerdorf', '$5$rounds=5000$usesomesillystringforsalt$') . "/n";}if (CRYPT_SHA512 == 1) {    echo 'SHA-512:      ' . crypt('rasmuslerdorf', '$6$rounds=5000$usesomesillystringforsalt$') . "/n";}

其結果如下

Standard DES: rl.3StKT.4T8M
Extended DES: _J9..rasmBYk8r9AiWNc
MD5: $1$rasmusle$rISCgZzpwk3UhDidwXvin0
Blowfish: $2a$07$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi
SHA-256: $5$rounds=5000$usesomesillystri$KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6
SHA-512: $6$rounds=5000$usesomesillystri$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21
在 crypt() 函數支持多重散列的系統上,下面的常量根據相應的類型是否可用被設置為 0 或 1:

CRYPT_STD_DES - 基于標準 DES 算法的散列使用 "./0-9A-Za-z" 字符中的兩個字符作為鹽值。在鹽值中使用非法的字符將導致 crypt() 失敗。
CRYPT_EXT_DES - 擴展的基于 DES 算法的散列。其鹽值為 9 個字符的字符串,由 1 個下劃線后面跟著 4 字節循環次數和 4 字節鹽值組成。它們被編碼成可打印字符,每個字符 6 位,有效位最少的優先。0 到 63 被編碼為 "./0-9A-Za-z"。在鹽值中使用非法的字符將導致 crypt() 失敗。
CRYPT_MD5 - MD5 散列使用一個以 $1$ 開始的 12 字符的字符串鹽值。
CRYPT_BLOWFISH - Blowfish 算法使用如下鹽值:“$2a$”,一個兩位 cost 參數,“$” 以及 64 位由 “./0-9A-Za-z” 中的字符組合而成的字符串。在鹽值中使用此范圍之外的字符將導致 crypt() 返回一個空字符串。兩位 cost 參數是循環次數以 2 為底的對數,它的范圍是 04-31,超出這個范圍將導致 crypt() 失敗。
CRYPT_SHA256 - SHA-256 算法使用一個以 $5$ 開頭的 16 字符字符串鹽值進行散列。如果鹽值字符串以 “rounds=<N>$” 開頭,N 的數字值將被用來指定散列循環的執行次數,這點很像 Blowfish 算法的 cost 參數。默認的循環次數是 5000,最小是 1000,最大是 999,999,999。超出這個范圍的 N 將會被轉換為最接近的值。
CRYPT_SHA512 - SHA-512 算法使用一個以 $6$ 開頭的 16 字符字符串鹽值進行散列。如果鹽值字符串以 “rounds=<N>$” 開頭,N 的數字值將被用來指定散列循環的執行次數,這點很像 Blowfish 算法的 cost 參數。默認的循環次數是 5000,最小是 1000,最大是 999,999,999。超出這個范圍的 N 將會被轉換為最接近的值。

3. Sha1加密

string sha1 ( string $str [, bool $raw_output = false ] )

參數

str -- 輸入字符串。

raw_output -- 如果可選的 raw_output 參數被設置為 TRUE,那么 sha1 摘要將以 20 字符長度的原始格式返回,否則返回值是一個 40 字符長度的十六進制數字。

這是也一種不可逆加密,執行如下代碼:

$password = '123456';
echo sha1($password);
得到的結果是7c4a8d09ca3762af61e59520943dc26494f8941b

以上幾種雖然是不可逆加密,但是也可以根據查字典的方式去解密。如下的地址中就提供了可以將上面的加密結果解密出來的功能。

http://www.cmd5.com/

那大家是不是加了就算加了密,也沒用啊,其實不然,只要你的加密足夠復雜,被破解出的可能性就越小,比如用以上三種加密方式混合加密,之后我會推薦給大家一個php的加密庫。

4. URL加密

string urlencode ( string $str )

此函數便于將字符串編碼并將其用于 URL 的請求部分,同時它還便于將變量傳遞給下一頁。

返回字符串,此字符串中除了 -_. 之外的所有非字母數字字符都將被替換成百分號(%)后跟兩位十六進制數,空格則編碼為加號(+)。此編碼與 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如何利用array_merge()函數合并兩個數組

PHP中實現守護進程的方法

PHP實現批量生成各種尺寸Logo的方法

以上就是PHP加密的幾種方法的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美国产日韩中文字幕在线| 久久久久久亚洲精品中文字幕| 亚洲精品二三区| 欧美激情综合色综合啪啪五月| 久久精品亚洲热| 日韩在线观看网址| 亚洲专区在线视频| 亚洲第一色在线| 久久色精品视频| 久久不射热爱视频精品| 久久99精品久久久久久琪琪| 精品国产一区二区三区四区在线观看| 国产精品稀缺呦系列在线| 精品香蕉在线观看视频一| 国产成人综合久久| 91午夜理伦私人影院| 亚洲精品不卡在线| 伦理中文字幕亚洲| 97热精品视频官网| 久久精品视频中文字幕| 国产精品成人免费视频| 91在线无精精品一区二区| 成人激情在线观看| 国产精品久久91| 亚洲精品一区二区网址| 精品国产乱码久久久久久虫虫漫画| 欧美激情综合亚洲一二区| 97在线免费观看视频| 久久久久国色av免费观看性色| 日韩av三级在线观看| 亚洲欧美第一页| 欧美一区二区三区四区在线| 亚洲第一区中文99精品| 欧美激情精品久久久久久变态| 亚洲影影院av| 日韩欧美aⅴ综合网站发布| 狠狠色狠狠色综合日日五| 欧美日韩另类视频| 亚洲sss综合天堂久久| 国产精品白丝jk喷水视频一区| 亚洲精品国产品国语在线| 欧美精品一区二区三区国产精品| 亚洲黄色av网站| 欧美国产精品日韩| 欧美国产一区二区三区| 尤物yw午夜国产精品视频| 亚洲精品美女久久久| 亚洲免费电影在线观看| 国产精品天天狠天天看| 日韩经典一区二区三区| 最新亚洲国产精品| 777午夜精品福利在线观看| 亚洲电影av在线| 亚洲视频在线看| 久久露脸国产精品| 成人国产精品免费视频| 欧美精品videofree1080p| 国产精品自在线| 久久综合色影院| 日韩视频精品在线| 性欧美xxxx| 欧美高清视频在线观看| 成人网址在线观看| 久久久久999| 成人中心免费视频| 亚洲视频免费一区| 国产专区精品视频| 一本色道久久88综合日韩精品| 国产精品福利片| 国产欧美精品在线播放| 神马国产精品影院av| 亚洲理论电影网| 国产日韩综合一区二区性色av| 精品一区二区三区三区| 国产精品久久久久999| 亚洲精品日韩激情在线电影| 欧美激情乱人伦一区| 久久视频在线播放| 久久久天堂国产精品女人| 国产精品成人品| 国产日韩欧美日韩| 欧美性资源免费| 97精品久久久中文字幕免费| 91高清在线免费观看| 久久全球大尺度高清视频| 中文字幕在线观看亚洲| 欧美午夜片在线免费观看| 精品国产精品三级精品av网址| 欧美日韩激情小视频| 久久久噜久噜久久综合| 亚洲成人av在线播放| 久久久视频在线| 精品久久国产精品| 欧美激情视频在线观看| 91国产在线精品| 色悠悠久久久久| 26uuu亚洲伊人春色| 亚洲国产又黄又爽女人高潮的| 国产精品狠色婷| 亚洲伊人久久综合| 日韩欧美在线观看视频| 亚洲第一二三四五区| 91久久精品在线| 国产香蕉一区二区三区在线视频| 亚洲人av在线影院| 亚洲天堂av高清| 亚洲国产日韩欧美综合久久| 久久精品国产亚洲7777| 国产精品自产拍在线观看中文| 在线视频欧美日韩精品| 国产精品永久在线| 日韩精品中文字幕久久臀| 精品一区二区三区电影| 亚洲www视频| 国产一区二区视频在线观看| 欧美极品xxxx| 欧美日韩综合视频网址| 亚洲福利视频专区| 粉嫩老牛aⅴ一区二区三区| 亚州av一区二区| 粉嫩老牛aⅴ一区二区三区| 中文字幕亚洲欧美在线| 亚洲欧美国产日韩天堂区| 国产在线一区二区三区| 亚洲国模精品一区| 久久久久久久久久久人体| 国产欧美日韩中文字幕在线| 免费不卡欧美自拍视频| 久久全国免费视频| 亚洲第一二三四五区| 欧美精品在线看| 久久久欧美一区二区| 中文国产亚洲喷潮| xxxxx成人.com| 欧美风情在线观看| 热re99久久精品国产66热| 久国内精品在线| 久久久精品中文字幕| 久久久久久com| 国产欧美一区二区三区久久| 夜夜嗨av色综合久久久综合网| 日韩av网址在线观看| 最近中文字幕2019免费| 亚洲午夜女主播在线直播| 中文字幕精品一区二区精品| 精品一区二区三区电影| 亚洲一区二区久久| 亚洲国模精品一区| 欧美综合国产精品久久丁香| 欧美裸体视频网站| 亚洲区免费影片| 一个人看的www久久| 亚洲精品短视频| 久久天天躁狠狠躁夜夜av| 国产人妖伪娘一区91| 91禁外国网站| 中国人与牲禽动交精品| 欧美激情a在线| 欧美亚洲激情视频| 日本人成精品视频在线| 亚洲最新中文字幕| 成人激情av在线| 国产99久久精品一区二区| 日韩暖暖在线视频|