PHP数据加密方式是什么
发布时间:2022-11-11 11:14:09 所属栏目:安全 来源:
导读: 本篇内容介绍了“PHP数据加密方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
|
本篇内容介绍了“PHP数据加密方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 前言 首先我们来了解一下为什么要加密? 在网络通信的过程中攻击者可以伪造请求和返回,从而达到不可告人的目的。如下图所示: 数据加密之后可以防止他人监听窃取信息以及通讯内容被篡改。 了解了加密的作用,我再来说说加密的方式: 对称加密DES DES是1977年美国联邦信息处理标准中采用的一种对称密码。是一种将64比特的明文加密成64比特的密文的对称算法 DES已经被暴力破解了,1999年RSA公司举办的破译DES比赛,耗时仅仅22小时45分钟破译了DES。所以不建议大家使用这种算法进行加密处理 对称加密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字节 我们直接来看看PHP实现非对称加密吧 //使用公钥加密,私钥解密 $public_key?=?"-----BEGIN?PUBLIC?KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA14VJBWSyVOI4Q4aV+Cvl GX4Vb4wczPw0qQbGYAYzfuA7+RpO/X5DG7dFjdBMmb9cHvdWY8+uvKDVuHjbvCpm 3nSTgMbCLm/zDDTH8MUySSaxvm0tbdWm+L1Rinw5LZ+B1J9tHEXMwJZ2g5ZS4OZ0 4xlXx/4GWd9QBuV036er47J/cZ19WPgBDqQ4Mmm2X2na46NCeRenRBXLsaQhxvEe 5pX3WtguQtr+QrcekAmBoI1Xc0xhKDyXZ34rqZNvVCUNn11VzDcffanxlmTFFKDp QCZLVf8gtSdcxxQQrOfStgLoyYbN1e2Spb/szfQHtbSZ1qHg1frhCvjgOmZ6gDi+ OQIDAQAB -----END?PUBLIC?KEY-----";//公钥 $private_key?=?"-----BEGIN?PRIVATE?KEY----- MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDXhUkFZLJU4jhD hpX4K+UZfhVvjBzM/DSpBsZgBjN+4Dv5Gk79fkMbt0WN0EyZv1we91Zjz668oNW4 eNu8KmbedJOAxsIub/MMNMfwxTJJJrG+bS1t1ab4vVGKfDktn4HUn20cRczAlnaD llLg5nTjGVfH/gZZ31AG5XTfp6vjsn9xnX1Y+AEOpDgyabZfadrjo0J5F6dEFcux pCHG8R7mlfda2C5C2v5Ctx6QCYGgjVdzTGEoPJdnfiupk29UJQ2fXVXMNx99qfGW ZMUUoOlAJktV/yC1J1zHFBCs59K2AujJhs3V7ZKlv+zN9Ae1tJnWoeDV+uEK+OA6 ZnqAOL45AgMBAAECggEAEdjMsjCjf9n31MepVZK09wZ02fbdT7A24CRaewsoaoJB FSCzl9RD1GC51sOABF9PTpUmxz8kdiRPbmY7s/pC6Hr41/odjGDi3IjmYa7CukIF CALcdzLxD7oFrZUZ2whRZP0KuQOir/QFvmHNXShYV5H6reoANqMCan/HzNmCp2ky pdtWd+YOFnvwP/m6Xw/mKWN2cFEEdME32Y9fnUq6gCpmgEQLZkEz0XQ53R9Yj6+O TpYhLzCgox5+HRL+PmE8G3XdVNOhbesmsTX4cS4s5/bWhw/iuZtlSGvNz867p0Ab jNiouWpoiLM9uHwGURndg+fslLKrBLU0fQeeXYplsQKBgQD3iEDX/Nzo19RZWz6T gf0r6S7tMtMWQr1InM8fuPxNXsT5QIuddNVp47UMs91F8K5bzGim7+0hM9SnBUsp /wKw9DRQuELziSdFGyfyo4lDiVvjqvMInph2yLfXaLdz9fxlT5+a8fUFJQqH65w2 SL+ice07mWt7ak/f1bfGKeAuVQKBgQDe5LFNtDKWLxMaO8lVTR0wWziTLImu+E3e svDIqZszyzqsLnZ4Qu6CXigrXQka8s1LRVF1kf4NQc65uutsFwitfOLitFa/h3wk 5K6Rqwl95QfkuYJpDvU4/IQ21O7HqRBt050QvBrNOfY8MCQUi3fisiP+mOkJS41Z iVRmQsfsVQKBgCjMinOPOBIg0N1RjsTdXg9IxfVOtUAsC+rV/cWqxdsyzaCPpPN0 +GAVqhfH5abLftGepXkufpVEZ76HvtXTNGxaM+1CEbb2WkSnrzPtBIjfMQgbeydm jJaNWM/mcKZqWwmP0CzHyKzqaAvzJ7JC12M9B+8U4IRdB4FLRpkg+dRpAoGAJkZz Q/qrrSqMRzb5DdLeLk2b23oMcqVlCdcEjhDB/BTsEGEyKtijiHOOxlOFmsETC9ft cxkM3U3tp+s3Pip+bPxDIdcCBoXExlkWuSD70kigIGDSyiOtbInAUoIiNtsLXTC3 igYjPBa1+AP0Tirc/WrFz5SGf/gfX767ZYwWNLkCgYBuHZrIWT0Feg5dJAkF7NMH 1Fes0Gn5sAQVvd9HVG4FAZxqJQa37M3GKD1m4ifBGtaDMgtWyVcMTdsr5hjpJB0G sEYlg3TDyd096Axr+I7KHDlIzboJjDWDwzwtqkTzgBRlxsClhqW/y/1y1o/QI9Rj CA7iK/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编码再传输给前后端,大家可以根据实际需要进行转码。 “PHP数据加密方式是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章! (编辑:百科站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐

