首页 > 编程语言 >PHP加密解密代码

PHP加密解密代码

时间:2023-06-04 15:00:51浏览次数:44  
标签:加密 key strArr 解密 str skey ord PHP data


[color=red][b]PHP加密解密字符串[/b][/color] [url]http://www.helloweba.com/view-blog-255.html[/url], [b][size=large][color=red]这个很不错.[/color][/size][/b]
[color=red][b]一组PHP可逆加密解密算法[/b][/color] [url]http://www.phper.org.cn/index.php?m=content&a=show&post_id=387[/url], 这个很不错.

[url]http://www.phper.org.cn/?post=133[/url]
加密算法如下:

function encrypt($data, $key)
{
	$key	=	md5($key);
    $x		=	0;
    $len	=	strlen($data);
    $l		=	strlen($key);
    for ($i = 0; $i < $len; $i++)
    {
        if ($x == $l) 
        {
        	$x = 0;
        }
        $char .= $key{$x};
        $x++;
    }
    for ($i = 0; $i < $len; $i++)
    {
        $str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);
    }
    return base64_encode($str);
}



解密算法如下:


function decrypt($data, $key)
{
	$key = md5($key);
    $x = 0;
    $data = base64_decode($data);
    $len = strlen($data);
    $l = strlen($key);
    for ($i = 0; $i < $len; $i++)
    {
        if ($x == $l) 
        {
        	$x = 0;
        }
        $char .= substr($key, $x, 1);
        $x++;
    }
    for ($i = 0; $i < $len; $i++)
    {
        if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1)))
        {
            $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
        }
        else
        {
            $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
        }
    }
    return $str;
}


使用:


$data = 'PHP加密解密算法';		// 被加密信息
$key = '123';					// 密钥
$encrypt = encrypt($data, $key);
$decrypt = decrypt($encrypt, $key);
echo $encrypt, "\n", $decrypt;




[url]http://www.thinkphp.cn/code/282.html[/url]


/**
 * 通用加密
 * @param String $string 需要加密的字串
 * @param String $skey 加密EKY
 * @author Anyon Zou <[email protected]>
 * @date 2013-08-13 19:30
 * @return String
 */
 function enCode($string = '', $skey = 'echounion') {
    $skey = array_reverse(str_split($skey));
    $strArr = str_split(base64_encode($string));
    $strCount = count($strArr);
    foreach ($skey as $key => $value) {
        $key < $strCount && $strArr[$key].=$value;
    }
    return str_replace('=', 'O0O0O', join('', $strArr));
 }
 /**
 * 通用解密
 * @param String $string 需要解密的字串
 * @param String $skey 解密KEY
 * @return String
 * @author Anyon Zou <[email protected]>
 * @date 2013-08-13 19:30
 */
 function deCode($string = '', $skey = 'echounion') {
    $skey = array_reverse(str_split($skey));
    $strArr = str_split(str_replace('O0O0O', '=', $string), 2);
    $strCount = count($strArr);
    foreach ($skey as $key => $value) {
        $key < $strCount && $strArr[$key] = rtrim($strArr[$key], $value);
    }
    return base64_decode(join('', $strArr));
 }

标签:加密,key,strArr,解密,str,skey,ord,PHP,data
From: https://blog.51cto.com/u_3871599/6410717

相关文章

  • ctf中关于php伪协议的考查
    1php://input协议第一个例子flag.php<?php$flag='flag{flag_is_here}';test1.php<?phpinclude('flag.php');$a=$_GET["a"];if(isset($a)&&(file_get_contents($a,'r'))==='thisistest'){echo"s......
  • Bouncy Castle SM2加解密
    配置过程下载相关包。我参考了连接:https://blog.csdn.net/weixin_42221688/article/details/90475014修改配置文件$JAVA_HOME$\jre\lib\security\java.security,在末尾添加security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider;测试:代码运行sm2_demo......
  • 05web安全学习---PHP正则表达式
    一、初识SQL注入<metacharset='GBK'/><form><center> 用户登录<br/>账号:<inputtype='text'name='uname'/><br/>密码:<inputtype='password'name='pwd'/><br/>&......
  • winows 下iis+nginx +php 部署
    我们服务器使用的server2008,由于iis里还有asp.net网站,php就想用iis做代理转发到nginx来处理请求。第一步:我为了省事,直接安装的phpstudy 下载地址:https://www.xp.cn/第二步:安装好后,设置运行fast-cgi,可以使用以下命令做bat,指定端口运行fast-cgi,我指定端口为9003ECHOSt......
  • 04web安全学习---PHP表单验证
    一、什么是表单?二、如何创建一个表单表单的一个最简单的写法:<formaction="https://www.baidu.com/s"><inputname='wd'/><inputtype='submit'/></form><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"&quo......
  • Groovy 基于Groovy实现MD5加密
    groovy3.0.7代码实现实现方式1importjava.security.MessageDigest;publicclassMD5Utils{ publicfinalstaticStringMD5(Strings){ char[]hexChars=['0','1','2','3','4','5','6',�......
  • php调用html模板
    在PHP中调用HTML模板,通常可以使用模板引擎来实现,例如Smarty、Twig等。以下是一个使用Smarty模板引擎的示例代码:<!--HTML模板文件template.html--><html><head><title>{$title}</title></head><body><h1>{$header}</h1>{foreach$i......
  • php新闻分页代码
    以下是一个简单的PHP新闻分页代码示例:<?php$servername="localhost";$username="username";$password="password";$dbname="news";//创建连接$conn=newmysqli($servername,$username,$password,$db......
  • php生成圆形图片
    在PHP中生成圆形图片需要用到GD库提供的图像处理函数。以下是一个简单的示例代码://创建一个200x200的正方形画布$image=imagecreatetruecolor(200,200);//生成背景色为白色的正方形$bg_color=imagecolorallocate($image,255,255,255);imagefill($image,0,......
  • tink google 加密安全实践的框架
    tink是google多年加密实践的框架,提供了安全的加密处理方法,可以简化不少我们的加密处理参考使用publicstaticvoidmain(String[]args)throwsGeneralSecurityException,IOException{AeadConfig.register();//1.Generatethekeymateri......