首頁 > 後端開發 > php教程 > PHP sha1()

PHP sha1()

王林
發布: 2024-08-29 12:55:18
原創
1252 人瀏覽過

PHP sha1() 函數是 PHP 的一個非常重要的函數,因為它是一種支援的伺服器端腳本語言,需要更加強調安全術語。 PHP sha1() 處理安全性和雜湊函數,該函數計算字串雜湊的 SHA-1 值。 PHP sha1() 在內部使用美國安全哈希演算法 1 的子類型。 Sha1() 函數產生一個值為 160 個字元的雜湊字串,然後當該雜湊字串作為函數的輸入給出時,它會產生一個輸出這是一個高度安全的訊息摘要。

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

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

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

文法

sha1(string, raw)
登入後複製

說明:sha1() 函數使用 string 和 raw 兩種類型的參數,用於產生字串並使用某個值計算字串的長度。 raw 是另一個自變數或參數,如果使用sha1() 函數指定,則在某種意義上是可選的,然後它傳遞帶有可選值(例如true 或false)的參數,然後傳遞剩餘的值來指定和描述十六進位或二進位值輸出格式。如果可選值顯示為 Raw 20,則它是 20 個字元的二進位格式,否則它是預設的 40 個字元的十六進位數字,具有某些特定值。

sha1() 函數在 PHP 中如何運作?

由於 PHP 是一種面向伺服器的腳本語言,因此它用於保留後端相關資料和操作並確保其安全。 sha1()函數解決了密碼和使用者管理相關資料的安全性問題。 sha1() 函數及其子演算法(如 US-Secure Hash 演算法 1)用於產生訊息摘要和數位簽章。

SHA-1() 函數利用美國安全雜湊演算法1,該演算法的使用方式是將字串作為輸入,然後將訊息摘要作為輸出。輸入被饋送到簽名演算法,該演算法檢查和驗證訊息的簽名。如果使用簽名訊息而不是實際訊息作為輸入,那麼很有可能提高整個演算法的效率。

與作為簽章演算法輸入的普通雜湊字串訊息相比,此過程將優化和壓縮訊息輸入和訊息輸出功能。此外,如果驗證者使用此演算法,則數位簽章的創建者可以使用數位簽章。

sha_file() 函數是 sha1() 函數的另一個子元件,它使用檔案函數的雜湊值。

檔案名稱的檔案函數用於計算檔案的雜湊值,並向其提供一個原始輸出,該輸出將用於傳回訊息或值為 true 或 false 的字串。函數內的md5()演算法和函數內的crc32()也將用於產生字串的多項式。並將有助於生成帶有一些精緻數位簽名的更安全的字串。

實作 PHP sha1() 函數的範例

下面提到的例子:

範例#1

他的程式表示在傳遞一個字串值後計算字串的SHA-1雜湊值,得到字串的雜湊值。

代碼:

<?php
$str = "welcome to educba";
echo sha1($str);
?>
登入後複製

輸出:

PHP sha1()

範例#2

程式表示在傳遞字串值以獲得字串的雜湊值後計算字串的 SHA-1 雜湊值,然後列印 sha1 字串的值,如輸出所示。字串的輸入為“Welcome to Educba”,輸出顯示字串值。

代碼:

<?php
$str = "Welcome to Educba";
echo "The string: ".$str."\n";
echo "TRUE - Represenation of Raw 20 character of binary format: ".sha1($str, TRUE)."\n";
echo "FALSE - representation of 40 character of hex number: ".sha1($str)."\n";
?>
登入後複製

輸出:

PHP sha1()

範例#3

程式表示在傳遞字串值以獲得字串的雜湊值後計算字串的 SHA-1 雜湊值,然後列印 sha1 字串的值,如輸出所示。字串的輸入為“Welcome to Educba”,輸出顯示字串值。接下來是對作為輸出的輸入字串進行測試。

代碼:

<?php
$str = "educba";
echo sha1($str);
if (sha1($str) == "49108e13b1505cd6147054cfd07fb52f4c9d2641")
{
echo "\n!educba";
exit;
}
?>
登入後複製

輸出:

PHP sha1()

Example #4

This program is also a part of the sha1() function associated function of CRC 32 algorithm which takes a string “Hello World ” as input and then echoes the value without and with the string of % u value as shown in the output.

Code:

<?php
$str = crc32("Hello educba!");
echo 'Without %u: '.$str."\n";
echo 'With %u: ';
printf("%u",$str);
?>
登入後複製

Output:

PHP sha1()

Example #5

This program makes use of the password_hash function as part of the sha1() function and helps in generating the password_hash with an output value as shown and makes use of hashing function by putting the cost parameter as 12 to get the optimized message digest as the final output to optimize and increase the overall efficiency of the program.

Code:

<?php
$options = [
'cost' => 12,
];
echo password_hash("educba_is_a_laerning_portal", PASSWORD_BCRYPT, $options);
?>
登入後複製

Output:

PHP sha1()

Example #6

This program makes use of the hash () function to generate the message digest of the given function which will be further used to convert into a digital signature for optimization.

Code:

<?php
function lion($data = "", $width=182, $rounds = 4) {
return substr(
implode(
array_map(
function ($h) {
return str_pad(bin2hex(strrev($h)), 16, "0");
},
str_split(hash("tiger192,$rounds", $data, true), 8)
)
),
0, 48-(192-$width)/4
);
}
echo hash('tiger192,3', 'a-string'), PHP_EOL;
echo lion('a-string'), PHP_EOL;
?>
登入後複製

Output:

PHP sha1()

Example #7

This program illustrated the md5 algorithm to be fed as an input string which is also counted as one of the complementary parts of the sha1() algorithm.

Code:

<?php
$str = 'apple';
if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
echo " i want to have a green or red apple?";
}
?>
登入後複製

Output:

PHP sha1()

Conclusion

sha1() function is a part of PHP string references which includes a lot of security and cryptographic algorithms which is very necessary for the backend services and the servers for continuing the overall security breaches related issues and password and user management related data as secured.

以上是PHP sha1()的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板