首页 > 后端开发 > 正文

php加密函数与解密函数 使用PHP实现对称加密和解密过程,真的是太简单了!

2024-08-21 01:47:36 | 我爱编程网

php加密函数与解密函数 使用PHP实现对称加密和解密过程,真的是太简单了!很多朋友对这方面很关心,我爱编程网整理了相关文章,供大家参考,一起来看一下吧!

本文目录一览:

php加密函数与解密函数 使用PHP实现对称加密和解密过程,真的是太简单了!

php SHA256WithRSA签名验签&加密解密

使用:

$pri_key ="";

$pub_key = "";

$char = '方方块儿';//要加密的字符

$sign = $this->RsaEncrypt($char,$pri_key);//加密结果

$result = $this->RsaDecrypt($sign,$pub_key);//对加密结果进行解密

加密:

public function RsaEncrypt($str,$pri_key){

$pi_key =openssl_pkey_get_private($pri_key);

if(!$pi_key)return false;//秘钥不可用

openssl_private_encrypt($str,$encrypted,$pi_key);

$encrypted =base64_encode($encrypted);

return $encrypted;

}

解密:
public function RsaDecrypt($str,$pub_key){

$pu_key =openssl_pkey_get_public($pub_key);

if(!$pu_key)return false;//秘钥不可用

openssl_public_decrypt(base64_decode($str),$decrypted,$pu_key);

return $decrypted;

}

注:开启PHP的php_openssl扩展

php加密函数与解密函数 使用PHP实现对称加密和解密过程,真的是太简单了!

使用PHP实现对称加密和解密过程,真的是太简单了!

为什么要加密?

加密是为了让信息传递更加安全!

这样可以让信息传递更具有保密性,不会被他人随意篡改,也能够确保信息真实有效地到达指定对象的手中。

我们加密的目的,主要是围绕这些情况来的。

举个例子

在信息通信过程中,比如你发送一条重要信息给对方,实际上在这个过程中,有很多人可以利用一些技术手段接触到这一段信息。如果是很重要的信息,但个别人利用,可能会产生严重的经济损失。

例如:信息中包含了一些敏感信息,如身份证、银行卡、密码等,而这些敏感信息是最容易被偷窥的。

为了避免出现以上情况,我们就要将信息进行加密处理。这样即便是被人拿到了关键信息,他也是在短时间内无法查看的,也就是让任何第三方都无法直接读取和读懂的信息。

只有发送方和接收方能看懂整个数据传输的信息。

加密系统的简单架构

加密的产生过程,简单来说其实就是:明文+密钥+算法=密文

举个栗子

从生活中我们用一个锁家里的门来举例,就是家中有价值的物品,就是你的明文,那么密钥就是你的钥匙,那么算法就是你是通过什么样的情况来锁门的。当门锁好之后,那么一个家就形成了一个加密状态了!

所以这个密钥通常都是需要保密的,就是这个意思,你总不可能把你的钥匙随便丢吧!

对称加密

那么在计算机中,也有一些比较安全和常见的加密方式,例如:对称加密。

对称加密其实分为两种形式:对称加密和非对称加密。

简单的说,对称加密就是加密和解密都会使用同样的密钥。

非对称加密则恰恰相反,这种加密和解密使用的是不同密钥。

AES对称加密算法

AES全称:advanced encryption standard,它是密码学中的高级加密标准,也是美国联邦政府采用的区块加密的标准,也是当下比较流行的对称密码算法!

我们前面提到的对称加密中就包含了AES,也就是加密和解密都会使用同样密钥的加密算法。

简单的说,发送方将明文和密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文再发送出去。

接收方如果想解读明文,那么需要使用加密用过的密钥及相同算法,然后按照与加密时相反的顺序逆推算法对密文进行解密,才能使其恢复成可读的明文信息。

前面说了,在对称AES加密算法中,使用的密钥只有一个,发送方和接收方都使用这个密钥对数据进行加密和解密,那么这就要求解密的一方事先必须知道加密密钥对吧!

这就像是它要求发送方和接收方在通信之前,约定一个密钥(暗号)

对称算法的安全性依赖于密钥,如果泄漏密钥就意味着任何人都可以对他们发送或接收的数据进行解密。

所以密钥的保密性对AES通信的安全性至关重要!

对称加密算法的优点在于加密和解密的快速和使用长密钥时的难破解性,而这种加密算法支持长度为128比特的密钥长度,同时也支持192、256比特一共三种选择!

我们知道加密的核心在于密钥而算法本身其实最终都会被破解的,所以现在流行的密码算法都是公开的,所以从密码学的角度而言也没有人去保密算法来提高安全性,所以说对于现在某些密码攻击手段对于一些高级加密标准算法本身并没有效果,真正核心的还是密钥,这里密钥的长度直接就会影响到蛮力攻击要取得成功需要耗费相当长的时间,而这种对称加密算法的安全性取决于密钥的保存情况来决定!

所以普通情况下,没有特殊需求,基本上首先的是AES加密。

应用场景

这里我简单说一个案例

假设我们现在有一个包含用户个人信息的JSON对象,需要进行加密处理。

那么此时我们可以使用一些加密算法,比如:AES、RSA 对这个JSON对象中的一些数据进行加密处理。

然后加密之后的数据会变成一串密文,用户是无法直接阅读和理解。

例如:使用AES算法加密上述JSON对象,结果可能类似于以下形式:

现在可以看到,加密后的JSON对象中的phone电话字段已经被替换为一串看似随机的字符串,我们是无法直接读取原始的手机号的,这样也对整个JSON对象也变得难以理解和解析。

这里加密后的JSON数据需要解密后才能还原为原始数据,而解密过程与加密相反,需要使用相应的解密算法和密钥来还原数据。

PHP实现AES对称加密

我们来实现一个简单的加密案例,有兴趣的朋友可以来看看,java、php、python等等用什么语言都可以!

我用php中的OpenSSl扩展库来实现AES对称加密与解密。

不用我们去了解底层,只需要轻松几步就可以实现一个简单加密和解密数据的过程!

代码如下

效果如下

代码分析

这里简单的使用到了php中OpenSSl扩展库的openssl_encrypt和openssl_decrypt函数来实现的AES。

openssl_encrypt函数解释

如下表

返回值:成功时返回加密后的字符串

openssl_decrypt函数解释

如下表

所以在上面的案例中encryptAES函数接受要加密的数据、密钥和初始向量,并返回加密后的结果。

而且decryptAES函数接受加密后的数据、密钥和初始向量,并返回解密后的原始数据。

特别注意的是密钥和初始向量的长度,必须要符合加密算法的要求!

大致流程如下图:

小结

看到这里你也应该大致了解了一下对称加密了吧,其实关于对称加密还有很多有趣的内容,以后可以慢慢给大家分享!

如果我的文章对你有帮助或你喜欢我的文章内容,请“点赞” “✍️评论” “收藏” 一键三连哦!

如果以上内容有任何错误或者不准确的地方,欢迎在下面留言指出、或者你有更好的想法

欢迎一起交流学习❤️❤️❤️❤️❤️

php加密函数与解密函数 使用PHP实现对称加密和解密过程,真的是太简单了!

php加密和解密的代码

我爱编程网(https://www.52biancheng.com)小编还为大家带来php加密和解密的代码的相关内容。

php提供的加密函数不只是有MD5,虽然MD5是用得最多的,因为其安全性相对较好。但是现在也有网站通过提供庞大的数据库来对其进行破解(比如 www.cmd5.com )。
除了MD5外,php还支持base64加密,这个函数可以进行解密,但是这种方式加密的结果并不是很安全,当然,如果要求不是很高的话,可以使用。进行base64加密的函数是:base64_encode($str);相反,对加密后的结果进行解密的函数是:base64_decode($str)。如:
<?php
$a="admin";
$b=base64_encode($a);
$c=base64_decode($b);
echo "加密前:\$a=",$a,"<br />";
echo "加密后:\$b=",$b,"<br />";
echo "解密后:\$c=",$c,"<br />";
?>
如果对这种方式得到的加密结果不满意,你可以对加密后或者加密前的字符串进行可逆处理(可逆是为了方便解密),然后在进行加密或者相关处理就可以了。
余下的自己搞定吧 我爱编程网

以上就是我爱编程网为大家带来的php加密函数与解密函数 使用PHP实现对称加密和解密过程,真的是太简单了!,希望能帮助到大家!更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“php加密函数与解密函数 使用PHP实现对称加密和解密过程,真的是太简单了!”相关推荐
php解密函数 php加密文件解密
php解密函数 php加密文件解密

在PHP开发中六种加密的方法,你用的是哪种?在PHP开发的世界里,数据的安全性至关重要。让我们深入探讨六种常见的加密方法,看看你在实际项目中是如何运用的。首先,我们从PHP内置的加密函数谈起。PHP为我们提供了两种截然不同的加密手段:不可逆的和可逆的。不可逆的如md5(),它生成的哈希值是单向的,用于确保数据的唯一性,而crypt()则是单向DES加密,适合于密码存储。

2024-07-20 03:48:44
在PHP开发中六种加密的方法,你用的是哪种? php实现php代码的加密解密
在PHP开发中六种加密的方法,你用的是哪种? php实现php代码的加密解密

在PHP开发中六种加密的方法,你用的是哪种?在PHP开发的世界里,数据的安全性至关重要。让我们深入探讨六种常见的加密方法,看看你在实际项目中是如何运用的。首先,我们从PHP内置的加密函数谈起。PHP为我们提供了两种截然不同的加密手段:不可逆的和可逆的。不可逆的如md5(),它生成的哈希值是单向的,用于确保数据的唯一性,而crypt()则是单向DES加密,适合于密码存储。

2024-08-24 02:36:38
PHP SHA256怎么带密钥加解密
PHP SHA256怎么带密钥加解密

phpSHA256WithRSA签名验签&加密解密使用:$pri_key="";$pub_key="";$char='方方块儿';//要加密的字符$sign=$this-&gt;RsaEncrypt($char,$pri_key);//加密结果$result=$this-&gt;RsaDecrypt($sign,$pub_key);//对加密结果进行解密加

2025-01-21 04:56:40
PHP如何对用户密码进行加密
PHP如何对用户密码进行加密

求大佬,解决一个php的自定义加密函数的md5按MD5算法,从字符串得到32位的HASH。urlencode把URL做成可以放进地址栏的形式urldecode把放进地址栏的东西还原成URLbase64_encode按BASE64算法,把字符串(可以是二进制的)加密,得到长度与输入有关,比输入长很多,得到的字符范围是可显示的。base64_decode按BA

2024-08-07 16:13:38
求大佬,解决一个php的自定义加密函数的 PHP的几种加密算法
求大佬,解决一个php的自定义加密函数的 PHP的几种加密算法

php加密和解密的代码php提供的加密函数不只是有MD5,虽然MD5是用得最多的,因为其安全性相对较好。但是现在也有网站通过提供庞大的数据库来对其进行破解(比如www.cmd5.com)。除了MD5外,php还支持base64加密,这个函数可以进行解密,但是这种方式加密的结果并不是很安全,当然,如果要求不是很高的话,可以使用。进行base64加密的函数是:base64_encode(

2024-09-17 14:58:10
php通过base64如何实现动态URL加密
php通过base64如何实现动态URL加密

php通过base64如何实现动态URL加密base64不能实现加密,只是采用了不同方式来对数据进行编码,方便通过防火墙传输,php中base64encode函数base64_encode("");decode函数base64_decode($str);php下,有加密函数stringcrypt(stringstr[,stringsalt]),自己看看文档把。求大佬,解决一个p

2024-11-26 15:36:18
php base64 decode 解密(解密PHP混淆代码,求解码(过程)完整方法。。)
php base64 decode 解密(解密PHP混淆代码,求解码(过程)完整方法。。)

php base64 decode 解密PHP中的Base64解密涉及到一系列函数的使用,其中关键的步骤是通过base64_decode函数对加密后的代码进行解密。例如,代码中的connect_sqlmysql($code)函数就是通过解码Base64编码来连接MySQL数据库。另一个例子是met_encode函数,它接受编码后的字符串作为输入,使用base64_encode进行编码处理。

2024-10-17 23:38:29
在线急求 PHP解密(PHP解密 (base64_decode))
在线急求 PHP解密(PHP解密 (base64_decode))

在线急求PHP解密方法:eval替换为exit结果:&lt;?php$o="QABAOyhjbnE5DQ07AHAnZGtmdHQAQDogZGtiZnUgOQG0Ozh3b3cnAABuaWRrcmNiJy9TQkpXS0ZTAABCV0ZTTycpJyAoZWhzc2hqQIApAlAgLjwnODkEs25jOiVhaGgBgXNidSU5DQ4BQwXzJWFrYmF

2025-02-01 20:24:39