首页 > php教程 > php手册 > 正文

PHP的加密解密字符串函数

php中文网
发布: 2016-06-13 09:46:06
原创
1175人浏览过

程序中经常使用的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在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号