溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php常用的加密方法是什么

發(fā)布時間:2021-03-26 13:43:02 來源:億速云 閱讀:230 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)php常用的加密方法是什么的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

php常用的加密方法有:1、使用md5()函數(shù);2、使用crypt()函數(shù);3、使用sha1()函數(shù);4、使用urlencode()函數(shù);5、使用base64_encode()函數(shù);6、使用password_hash()函數(shù)。

常用的PHP加密方式

1. MD5加密

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

參數(shù)

  • str  --  原始字符串。

  • raw_output  --  如果可選的 raw_output 被設(shè)置為 TRUE,那么 MD5 報文摘要將以16字節(jié)長度的原始二進(jìn)制格式返回。

2. Crype加密

crypt() 返回一個基于標(biāo)準(zhǔn) UNIX DES 算法或系統(tǒng)上其他可用的替代算法的散列字符串。

string crypt ( string $str [, string $salt ] )

參數(shù)

  • str  --  待散列的字符串。

  • salt  --  可選的鹽值字符串。如果沒有提供,算法行為將由不同的算法實現(xiàn)決定,并可能導(dǎo)致不可預(yù)料的結(jié)束。

這是也一種不可逆加密

3. Sha1加密

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

參數(shù)

  • str  --  輸入字符串。

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

這是也一種不可逆加密

4. URL加密

string urlencode ( string $str )

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

返回字符串,此字符串中除了 -_. 之外的所有非字母數(shù)字字符都將被替換成百分號(%)后跟兩位十六進(jìn)制數(shù),空格則編碼為加號(+)。此編碼與 WWW 表單 POST 數(shù)據(jù)的編碼方式是一樣的,同時與 application/x-www-form-urlencoded 的媒體類型編碼方式一樣。由于歷史原因,此編碼在將空格編碼為加號(+)方面與 RFC1738 編碼不同。

string urldecode ( string $str )

解碼給出的已編碼字符串中的任何 %##。 加號('+')被解碼成一個空格字符。

這是一種可逆加密,urlencode方法用于加密,urldecode方法用于解密

5. Base64信息編碼加密

string base64_encode ( string $data )

使用 base64 對 data 進(jìn)行編碼。

設(shè)計此種編碼是為了使二進(jìn)制數(shù)據(jù)可以通過非純 8-bit 的傳輸層傳輸,例如電子郵件的主體。

Base64-encoded 數(shù)據(jù)要比原始數(shù)據(jù)多占用 33% 左右的空間。

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

對 base64 編碼的 data 進(jìn)行解碼。

參數(shù)

  • data  --  編碼過的數(shù)據(jù)。

  • strict  --  如果輸入的數(shù)據(jù)超出了 base64 字母表,則返回 FALSE。

6.phpass(推薦)

經(jīng) phpass 0.3 測試,在存入數(shù)據(jù)庫之前進(jìn)行哈希保護(hù)用戶密碼的標(biāo)準(zhǔn)方式。 許多常用的哈希算法如 md5,甚至是 sha1 對于密碼存儲都是不安全的, 因為駭客能夠使用那些算法輕而易舉地破解密碼。

對密碼進(jìn)行哈希最安全的方法是使用 bcrypt 算法。開源的 phpass 庫以一個易于使用的類來提供該功能

7.個人認(rèn)為更好的密碼加密方式

PHP5.5引入了Password Hashing函數(shù),內(nèi)核自帶無需安裝擴(kuò)展。在PHP5.4下測試了下也可是可以的,使用前最好確認(rèn)一下你當(dāng)前的環(huán)境是否支持這些函數(shù)。

Password Hashing主要提供了4個函數(shù)

//1.查看哈希值的相關(guān)信息
array password_get_info (string $hash)
 
//2.創(chuàng)建hash密碼
string password_hash(string $password , integer $algo [, array $options ])

//3.判斷hash密碼是否特定選項、算法所創(chuàng)建
boolean password_needs_rehash (string $hash , integer $algo [, array $options ] 

//4.驗證密碼
boolean password_verify (string $password , string $hash)

如下實例:

$password = 'password123456';//原始密碼
$hash_password = password_hash($password, PASSWORD_BCRYPT);//使用BCRYPT算法加密密碼
if (password_verify($password , $hash_password)){
   echo "密碼匹配";
}else{  
   echo "密碼錯誤";
}

感謝各位的閱讀!關(guān)于“php常用的加密方法是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI