PHP sha1()

王林
发布: 2024-08-29 12:55:18
原创
1209 人浏览过

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!