首页 > 后端开发 > php教程 > PHP 中的哈希函数

PHP 中的哈希函数

PHPz
发布: 2024-08-29 12:47:03
原创
1193 人浏览过

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中文网其他相关文章!

相关标签:
php
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板