程序中经常使用的php加密解密字符串函数
代码如下:
<span /*</span><span ********************************************************************
函数名称:encrypt
函数作用:加密解密字符串
使用方法:
加密 :encrypt('str','E','nowamagic');
解密 :encrypt('被加密过的字符串','D','nowamagic');
参数说明:
$string :需要加密解密的字符串
$operation:判断是加密还是解密:E:加密 D:解密
$key :加密的钥匙(密匙);
http://www.cnblogs.com/roucheng/
********************************************************************</span><span */</span>
<span function</span> encrypt(<span $string</span>,<span $operation</span>,<span $key</span>=''<span )
{
</span><span $key</span>=<span md5</span>(<span $key</span><span );
</span><span $key_length</span>=<span strlen</span>(<span $key</span><span );
</span><span $string</span>=<span $operation</span>=='D'?<span base64_decode</span>(<span $string</span>):<span substr</span>(<span md5</span>(<span $string</span>.<span $key</span>),0,8).<span $string</span><span ;
</span><span $string_length</span>=<span strlen</span>(<span $string</span><span );
</span><span $rndkey</span>=<span $box</span>=<span array</span><span ();
</span><span $result</span>=''<span ;
</span><span for</span>(<span $i</span>=0;<span $i</span><=255;<span $i</span>++<span )
{
</span><span $rndkey</span>[<span $i</span>]=<span ord</span>(<span $key</span>[<span $i</span>%<span $key_length</span><span ]);
</span><span $box</span>[<span $i</span>]=<span $i</span><span ;
}
</span><span for</span>(<span $j</span>=<span $i</span>=0;<span $i</span><256;<span $i</span>++<span )
{
</span><span $j</span>=(<span $j</span>+<span $box</span>[<span $i</span>]+<span $rndkey</span>[<span $i</span>])%256<span ;
</span><span $tmp</span>=<span $box</span>[<span $i</span><span ];
</span><span $box</span>[<span $i</span>]=<span $box</span>[<span $j</span><span ];
</span><span $box</span>[<span $j</span>]=<span $tmp</span><span ;
}
</span><span for</span>(<span $a</span>=<span $j</span>=<span $i</span>=0;<span $i</span><<span $string_length</span>;<span $i</span>++<span )
{
</span><span $a</span>=(<span $a</span>+1)%256<span ;
</span><span $j</span>=(<span $j</span>+<span $box</span>[<span $a</span>])%256<span ;
</span><span $tmp</span>=<span $box</span>[<span $a</span><span ];
</span><span $box</span>[<span $a</span>]=<span $box</span>[<span $j</span><span ];
</span><span $box</span>[<span $j</span>]=<span $tmp</span><span ;
</span><span $result</span>.=<span chr</span>(<span ord</span>(<span $string</span>[<span $i</span>])^(<span $box</span>[(<span $box</span>[<span $a</span>]+<span $box</span>[<span $j</span>])%256<span ]));
}
</span><span if</span>(<span $operation</span>=='D'<span )
{
</span><span if</span>(<span substr</span>(<span $result</span>,0,8)==<span substr</span>(<span md5</span>(<span substr</span>(<span $result</span>,8).<span $key</span>),0,8<span ))
{
</span><span return</span> <span substr</span>(<span $result</span>,8<span );
}
</span><span else</span><span
{
</span><span return</span>''<span ;
}
}
</span><span else</span><span
{
</span><span return</span> <span str_replace</span>('=','',<span base64_encode</span>(<span $result</span><span ));
}
}</span>
立即学习“PHP免费学习笔记(深入)”;
使用方法:
<span $id</span> = 132<span ;
</span><span $token</span> = encrypt(<span $id</span>, 'E', 'a'<span );
</span><span echo</span> '加密:'.encrypt(<span $id</span>, 'E', 'a'<span );
</span><span echo</span> '<br />'<span ;
</span><span echo</span> '解密:'.encrypt(<span $token</span>, 'D', 'a');
立即学习“PHP免费学习笔记(深入)”;
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号