首頁 >後端開發 >php教程 >PHP 中的雜湊函數

PHP 中的雜湊函數

PHPz
PHPz原創
2024-08-29 12:47:031166瀏覽

PHP中的雜湊函數是一種預先定義的特殊方法,用於以從字串的字元測量的確定值的形式表示字串。它因其作為加密演算法和資料庫中項目的索引值表示的應用而廣受歡迎。在資料加密過程中最常用的雜湊演算法類型是SHA1()和MD5()。在 PHP 中,雜湊函數有四種不同的類型,例如 Hash_equals、Hash_final、Hash_init 和 Hash_copy。

廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

雜湊函數如何運作?

PHP 是一種伺服器端程式語言,其主要作用是處理特定應用程式所需的後端功能。在此過程中,身份驗證起著至關重要的作用,因為漏洞可以輕鬆利用資料。保護資料的一種方法是以原始形式將其儲存在資料庫中,但這可能會導致入侵者/未經授權的人可以輕鬆獲取資料並且資料可能受到損害。使用哈希函數可以輕鬆處理這種情況。

雜湊函數以真實形式加密數據,因此不會改變其含義。因此,當使用者以真實形式輸入資料時,資料將在後端進行加密,從而進行資料處理的身份驗證和授權。最常用的雜湊演算法有md5()、sha1()和少數雜湊函數。開發人員使用這些演算法來驗證使用者輸入的資料是否正確或不繼續繼續該過程。

1. MD5()

該演算法是強大的雜湊演算法之一,它計算 md5 雜湊值,即特定字串的 16 或 32 個字元的十六進位數的雜湊值。傳遞的這個字串將會轉換為加密的十六進位形式。

文法:

string md5 ($string, $getRawOutput)

上面的語法表示 $string 作為輸入字串。原始輸出是可選輸入,因為開發人員希望將其轉換為 16 位元或 32 位元。如果必須啟用 16 位,則必須將其設為 TRUE 布林值並傳遞給函數。如果未設置,則自動設定預設的 32 位元。

範例:

md5 (EduCBA, TRUE)

2. SHA1 ()

該演算法是強大的雜湊演算法之一,它計算 sha1 雜湊值,即特定字串的 20 個字元的二進位格式或 40 個字元的十六進位數的雜湊值。傳遞的這個字串將會轉換為加密的十六進位形式。

文法:

string sha1 ($string, $getRawOutput)

上面的語法表示 $string 作為輸入字串。原始輸出是可選輸入,因為開發人員希望它是 20 位元或 40 位元。如果必須啟用 20 位,則必須將其設為 TRUE 布林值並傳遞給函數。如果未設置,則自動設定預設的 40 位元。

範例:

sha1 (EduCBA, TRUE)

PHP 中的雜湊函數

下面列出了 PHP 中使用的一些雜湊函數,用於將資料從原始形式加密/轉換為雜湊形式。

1.哈希_等於

函數同時比較兩個字串是否相等。當字串相等時,函數傳回 TRUE;如果字串不相等,則傳回 FALSE。兩個參數應該相同才能比較字串,否則即使不按字母順序比較字串,它也會立即傳回 false,有時在計時攻擊的情況下也可能會顯示字串的長度。

2. Hash_final

此函數傳回傳遞給此函數的輸入字串的雜湊摘要。當原始輸出設定為 TRUE 時,它給出原始二進位資料;當它設定為 FALSE 時,它給出小寫十六進制數。此函數傳回計算出的字串的十六進位摘要作為輸出。

3. Hash_init

此函數與雜湊演算法一起使用,即 md5 ()、sha () 等。此函數與雜湊演算法一起產生輸出以與 hash_update ()、hash Final () 等一起使用。 hash_init 儲存在字串或變數中並傳遞給任一函數。

4.哈希_副本

此函數用於複製雜湊上下文。作為輸入傳遞給函數的字串由 hash_init() 函數中使用的演算法之一進行雜湊處理,對應的輸出將是傳遞給該函數的雜湊字串。此函數傳回 hash_init 函數給出的輸出的雜湊形式。

Examples of Hashing Function in PHP

The following is a list of hashing function in PHP explained in detail,

Example #1

Code:

<?php
$c = hash_init("md5");
hash_update($c, "content");
$copy_c = hash_copy($c);
echo hash_final($c);
hash_update($copy_c, "content");
echo hash_final($copy_c), "\n";
?>

Output:

PHP 中的雜湊函數

Example #2

Code:

<?php
$expected  = crypt('leela123', '$2a$07$user$');
$right   = crypt('leela123', '$2a$07$user$');
$wrong = crypt('leeeela233',  '$2a$07$usedwrongstring$');
var_dump(hash_equals($expected, $right));
var_dump(hash_equals($expected, $wrong));
?>

Output:

PHP 中的雜湊函數

Example #3

Code:

<?php
$hash = hash_init('sha1');
hash_update($hash, 'This is an example of PHP Hash function');
echo hash_final($hash);
?>

Output:

PHP 中的雜湊函數

Conclusion

In this article, we discussed what is hashing and its various algorithms. Also, we discussed a few hashing functions used in PHP to encrypt the data to prevent malicious and vulnerable attacks. Because of these attacks, the data is not secure and loss of data occurs. So, the hashing technique was introduced so that there will be no loss of data and it will be secured by various attacks.

以上是PHP 中的雜湊函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:PHP 字串函數下一篇:PHP 字串函數