广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP数据加密的几种方式
  • 134
分享到

PHP数据加密的几种方式

php开发语言 2023-10-04 18:10:15 134人浏览 泡泡鱼
摘要

首先我们来了解一下为什么要加密? 在网络通信的过程中攻击者可以伪造请求和返回,从而达到不可告人的目的。如下图所示: 数据加密之后可以防止他人监听窃取信息以及通讯内容被篡改。 了解了加密的作用,我再来

首先我们来了解一下为什么要加密?

网络通信的过程中攻击者可以伪造请求和返回,从而达到不可告人的目的。如下图所示:
在这里插入图片描述
数据加密之后可以防止他人监听窃取信息以及通讯内容被篡改。
了解了加密的作用,我再来说说加密的方式:

对称加密DES:

DES是1977年美国联邦信息处理标准中采用的一种对称密码。是一种将64比特的明文加密成64比特的密文的对称算法

DES已经被暴力破解了,1999年RSA公司举办的破译DES比赛,耗时仅仅22小时45分钟破译了DES。所以不建议大家使用这种算法进行加密处理
更多技术知识请关注我的V-X-公-众hao:编程经验共享

对称加密AES:

AES是取代DES而成为新标准的一种对称密码算法。目前为止还未被破译。
接下来我们用PHP来实践一下对称加密吧。

在使用php的AES加密需要使用openssl相关函数,该系列函数需要安装openssl扩展。

//获取可用的加密算法$a = openssl_get_cipher_methods();print_r($a)//AES加密解密$data = 'wo shi aes jiami shuju';//待加密的数据$key = uniqid();//加密的密钥$method = 'AES-128-CBC';//加密的方式$iv = '1234567812345678';//初始化向量,必须是16位字符$a = openssl_encrypt($data,$method,$key,OPENSSL_RAW_DATA,$iv);//打印加密结果print_r($a);//解密$d = openssl_decrypt($a,$method,$key,OPENSSL_RAW_DATA,$iv);//解密后的数据print_r($d);

非对称加密RSA:

AES加密算法目前虽然没有被破解,但是也有一个问题,加密所使用的密钥该怎么去配送呢?如果直接写死在前端就很容易被其他人获取到(一次反编译就可以获取)。
此时就产生了RSA加密算法,不过RSA密码算法也有缺点,运算次数多,不适合加密长文本。

明文内容最长128字节
更多技术知识请关注我的V-X-公-众hao:编程经验共享

我们直接来看看PHP实现非对称加密吧

//使用公钥加密,私钥解密$public_key = "-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA14VJBWSyVOI4Q4aV+CvlGX4Vb4wczPw0qQbGYAYzfuA7+RpO/X5DG7dFjdBMmb9cHvdWY8+uvKDVuHjbvCpm3nSTgMbCLm/zDDTH8MUySSaxvm0tbdWm+L1Rinw5LZ+B1J9tHEXMwJZ2g5ZS4OZ04xlXx/4GWd9QBuV036er47J/cZ19WPgBDqQ4Mmm2X2na46NCeRenRBXLsaQhxvEe5pX3WtguQtr+QrcekAmBoI1Xc0xhKDyXZ34rqZNvVCUNn11VzDcffanxlmTFFKDpQCZLVf8gtSdcxxQQrOfStgLoyYbN1e2Spb/szfQHtbSZ1qHg1frhCvjGomZ6gDi+OQIDAQAB-----END PUBLIC KEY-----";//公钥$private_key = "-----BEGIN PRIVATE KEY-----MIIEvaiBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDXhUkFZLJU4jhDhpX4K+UZfhVvjBzM/DSpBsZgBjN+4Dv5Gk79fkMbt0WN0EyZv1we91Zjz668oNW4eNu8KmbedJOAxsIub/MMNMfwxTJJJrG+bS1t1ab4vVGKfDktn4HUn20cRczAlnaDllLg5nTjGVfH/gZZ31AG5XTfp6vjsn9xnX1Y+AEOpDgyabZfadrjo0J5F6dEFcuxpCHG8R7mlfda2C5C2v5Ctx6QCYGgjVdzTGEoPJdnfiupk29UJQ2fXVXMNx99qfGWZMUUoOlAJktV/yC1J1zHFBCs59K2AujJhs3V7ZKlv+zN9Ae1tJnWoeDV+uEK+OA6ZnqAOL45AgMBAAECggEAEdjMsjCjf9n31MepVZK09wZ02fbdT7A24CRaewsoaoJBFSCzl9RD1GC51sOABF9PTpUmxz8kdiRPbmY7s/pC6Hr41/odjGDi3IjmYa7CukIFCALcdzLxD7oFrZUZ2whRZP0KuQOir/QFvmHNXShYV5H6reoANqMCan/HzNmCp2kypdtWd+YOFnvwP/m6Xw/mKWN2cFEEdME32Y9fnUq6gCpmgEQLZkEz0XQ53R9Yj6+OTpYhLzCgox5+HRL+PmE8G3XdVNOhbesmsTX4cS4s5/bWhw/iuZtlSGvNz867p0AbjNIOUWPoiLM9uHwGURndg+fslLKrBLU0fQeeXYplsQKBgQD3iEDX/Nzo19RZWz6Tgf0r6S7tMtMWQr1InM8fuPxNXsT5QIuddNVp47UMs91F8K5bzGim7+0hM9SnBUsp/wKw9DRQuELziSdFGyfyo4lDiVvjqvMInph1yLfXaLdz9fxlT5+a8fUFJQqH65w2SL+ice07mWt7ak/f1bfGKeAuVQKBgQDe5LFNtDKWLxMaO8lVTR0wWziTLImu+E3esvDIqZszyzqsLnZ4Qu6CXigrXQka8s1LRVF1kf4NQc65uutsFwitfOLitFa/h2wk5K6Rqwl95QfkuYJpDvU4/IQ21O7HqRBt050QvBrNOfY8MCQUi3fisiP+mOkJS41ZiVRMQsfsVQKBgCjMinOPOBIg0N1RjsTdXg9IxfVOtUAsC+rV/cWqxdsyzaCPpPN0+GAVqhfH5abLftGepXkufpVEZ76HvtXTNGxaM+1CEbb2WkSnrzPtBIjfMQgbeydmjJaNWM/mcKZqWwmP0CzHyKzqaAvzJ7JC12M9B+8U4IRdB4FLRpkg+dRpAoGAJkZzQ/qrrSqMRzb5DdLelk2b23oMcqVlCdcEjhDB/BTsEGEyKtijiHOOxlOFmsETC9ftcxkM3U3tp+s3Pip+bPxDIdcCBoXExlkWuSD70kigIGDSyiotbInAUoIiNtsLXTC3igYjPBa1+AP0Tirc/WrFz5SGf/gfX767ZYwWNLkCgYBuHZrIWT0Feg5dJAkF7NMH1Fes0Gn5sAQVvd9HVG4FAZxqJQa37M3GKD1m4ifBGtaDMgtWyVcMTdsr5hjpJB0GsEYlg3TDyd096Axr+I7KHDlIzboJjDWDwzwtqkTzgBRlxsClhqW/y/1y1o/QI9RjCA7iK/XSPTdstVk5IPL/Aw==-----END PRIVATE KEY-----";//私钥$text ='我是待加密的内容';//公钥加密,参数二$data为加密后的内容$res = openssl_public_encrypt($text,$encrypt,$public_key);if($res==false) echo '加密失败';//私钥解密,参数一:待解密的数据  //参数二:解密后的明文内容$res = openssl_private_decrypt($encrypt,$decrypt,$private_key);if($res==false) echo '解密失败';echo '解密后的明文数据:'.$decrypt

上面的代码就是PHP实现公钥加密,私钥解密的过程,我们再来看看PHP私钥加密,公钥解密吧

//使用公钥加密,私钥解密$public_key = "公钥"; $private_key = "私钥"; $text = "我是待加密的内容";//公钥加密,参数二$data为加密后的内容//参数三:私钥$res = openssl_private_encrypt($text,$encrypt,$private_key);if($res==false) echo '加密失败';//私钥解密,参数一:待解密的数据  //参数二:解密后的明文内容//参数三:公钥$res = openssl_public_decrypt($encrypt,$decrypt,$public_key );if($res==false) echo '解密失败';echo '解密后的明文数据:'.$decrypt

注意了,前端使用公钥或者私钥进行加密时,一般都会将加密内容转base64h后再传到服务器进行解密。服务器在接收到数据后应该进行base64解析后再进行公钥/私钥进行解密。后端返回给前端时,也应该将加密后的内容转base64格式,方便前端解析。
当然也有一些开发人员会使用urlencode进行url编码再传输给前后端,大家可以根据实际需要进行转码

更多技术知识请关注我的V-X-公-众hao:编程经验共享

来源地址:https://blog.csdn.net/weixin_39151744/article/details/126966934

--结束END--

本文标题: PHP数据加密的几种方式

本文链接: https://www.lsjlt.com/news/423465.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP数据加密的几种方式
    首先我们来了解一下为什么要加密? 在网络通信的过程中攻击者可以伪造请求和返回,从而达到不可告人的目的。如下图所示: 数据加密之后可以防止他人监听窃取信息以及通讯内容被篡改。 了解了加密的作用,我再来...
    99+
    2023-10-04
    php 开发语言
  • Python常见的几种数据加密方式
    目录一、md5加密解密增加破解成本的方法SHA1安全哈希算法二、Base64伪加密三、DES/AESAES和DES的区别破解方法四、RSA非对称加密算法使用流程和场景介绍公钥私钥生成...
    99+
    2022-11-11
  • asp加密方式有哪几种
    ASP(Active Server Pages)是一种用于创建动态网页的服务器端脚本语言,它本身并不提供加密功能,但可以使用其它加密...
    99+
    2023-09-21
    asp
  • MySQL的加密解密的几种方式(小结)
    写在前面 之前遇到一个问题,就是MySQL的信息如何加密。其实加密的思路有两种,一种是在数据库外部加密后存入数据库,第二种是在数据库内部对数据进行加密。这两种的区别就是第二种比第一种在使用上要更加方便,因为在外部加...
    99+
    2022-05-28
    MySQL 加密解密
  • 常用的android加密方式有哪几种
    常用的Android加密方式有以下几种:1. 文件加密:通过对文件进行加密,确保文件内容的机密性,常见的文件加密算法有AES(Adv...
    99+
    2023-10-18
    android
  • php提交数据有哪几种方式
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php提交数据有两种方式:get方式和post方式。1、通过get方式提交数据比如:https://www.php.cn参数名=参数值&参数名=参数值在服务器端...
    99+
    2017-02-09
    php 提交数据
  • php几种常用的加密解密算法
    本文给大家介绍php的三种常用的加密解密算法,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 php 自带的加密函数:     不可逆的加密函数为:md5()、sha1()、crypt()     md5() 用来计算 M...
    99+
    2023-09-02
    php 算法 加密算法 解密算法
  • php接口加密的两种方式
    在我们做项目的时候免不了使用接口请求数据,或者通过接口给其他应用提供数据,但是在网络请求中我们的数据是可以别一些软件抓取到的,这样我们的数据就会别泄露或者被人篡改,在我们实际项目中应该怎么处理呢? 下...
    99+
    2023-09-24
    php 开发语言
  • python代码的几种常见加密方式分享
    目录1.发行.pyc文件1.1 编译加密1.2 是否可逆1.3是否影响模块调用2.代码混淆3.生成exe可执行文件4…py文件转化为.so文件5.附加运行辅助包文件方式...
    99+
    2022-11-11
  • MySQL修改密码的几种方式
    前言: 在日常使用数据库的过程中,难免会遇到需要修改账号密码的情景,比如密码太简单需要修改、密码过期需要修改、忘记密码需要修改等。本篇文章将会介绍需要修改密码的场景及修改密码的几种方式。 1.忘记 root 密码 ...
    99+
    2022-05-24
    MySQL 密码 MySQL 修改密码
  • redis加锁的几种方式汇总
    目录1、INCR2、SETNX3、SET总结redis常见的加锁命令分别是INCR、SETNX、SET 1、INCR 这种锁的加锁思路是: key不存在,那么key的值会先被初始化为...
    99+
    2023-03-07
    redis加锁 redis加锁方式 redis加锁汇总
  • MySql添加索引的几种方式
    添加索引 添加primary key(主键索引) alter table 表名 add primary key(列名); 添加unique(唯一索引) alter table 表名 add unique(列名); 添加普通索引index...
    99+
    2023-09-03
    mysql 数据库 sql
  • spring的加载方式有哪几种
    Spring的加载方式有三种:基于XML的配置加载、基于注解的配置加载和基于Java配置的加载。1. 基于XML的配置加载:通过编写...
    99+
    2023-09-28
    spring
  • python运行加速的几种方式
    目录一、总结二、全面加速(pypy)二、减少文件的打开即with的调用三、if判断靠前一、总结 使用pypy 2、减少函数化调用 3、减少文件的打开即with的调用,将这一调用放在for循环前面,然后传递至后面需要用...
    99+
    2022-06-02
    python运行加速 python 加速
  • php定义数组有几种方式
    在PHP中,有三种常见的方式来定义数组:1. 索引数组:使用数字作为索引的数组。可以通过在方括号中指定索引位置来定义。```php$...
    99+
    2023-08-28
    PHP
  • php转数组有哪几种方式
    转数组的方式:1、在指定变量前加上用括号括起来的目标类型“(array)”,语法“(array)变量”;2、用settype()将变量设置为数组类型,语法“settype(变量,"array")”;3、用str_spli...
    99+
    2022-08-08
    php数组 php
  • C#实现加密的几种方法介绍
    1.ACSII码加密 //ACSII码加密 private static string ACSIIPWd(string rpwd) { ...
    99+
    2022-11-13
  • PHP数据加密方式梳理介绍
    目录前言对称加密DES对称加密AES非对称加密RSA前言 首先我们来了解一下为什么要加密? 在网络通信的过程中攻击者可以伪造请求和返回,从而达到不可告人的目的。如下图所示: 数据加...
    99+
    2022-11-13
  • 数据加密存储常见的加密方式
    数据加密存储五种常见的加密方式先总结下:数据加密存储五种常见的加密方式:数据加密存储方式一、MD5加密(加密不可逆)。数据加密存储方式二、Base64位加密(可加密也可解密)。数据加密存储方式三、sha1加密(加密不可逆)。数据加密存储方式...
    99+
    2023-09-07
    安全 网络 服务器 Powered by 金山文档
  • php的跳转方式有几种
    这篇文章主要介绍“php的跳转方式有几种”,在日常操作中,相信很多人在php的跳转方式有几种问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php的跳转方式有几种”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作