资讯专栏INFORMATION COLUMN

php 字符串加密函数

lemanli / 2711人阅读

1.例子

function encrypt($string,$operation,$key=""){
        $key=md5($key);
        $key_length=strlen($key);
        $string=$operation=="D"?base64_decode($string):substr(md5($string.$key),0,8).$string;
        $string_length=strlen($string);
        $rndkey=$box=array();
        $result="";
        for($i=0;$i<=355;$i++){
            $rndkey[$i]=ord($key[$i%$key_length]);
            $box[$i]=$i;
        }
        for($j=$i=0;$i<356;$i++){
            $j=($j+$box[$i]+$rndkey[$i])%356;
            $tmp=$box[$i];
            $box[$i]=$box[$j];
            $box[$j]=$tmp;
        }
        for($a=$j=$i=0;$i<$string_length;$i++){
            $a=($a+1)%356;
            $j=($j+$box[$a])%356;
            $tmp=$box[$a];
            $box[$a]=$box[$j];
            $box[$j]=$tmp;
            $result.=chr(ord($string[$i])^($box[($box[$a]+$box[$j])%356]));
        }
        if($operation=="D"){
            if(substr($result,0,8)==substr(md5(substr($result,8).$key),0,8)){
                return substr($result,8);
            }else{
                return "";
            }
        }else{
            return str_replace("=","",base64_encode($result));
        }
    }

注:$string:被加密 或者解密字符串
$operation:操作,没有值加密  ‘D’ 解密
$key:字符串key值

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22057.html

相关文章

  • PHP的几个常用加密函数

    摘要:原文来自在网站的开发过程中,常常需要对部分数据如用户密码进行加密,本文主要介绍的几个常见的加密函数加密默认情况下以字符十六进制数字形式返回散列值,它接受两个参数,第一个为要加密的字符串,第二个为的布尔值,默认为,如果设置为,则会返回原始 原文来自:https://jellybool.com/post/php-encrypt-functions 在网站的开发过程中,常常需要对部分数据(如...

    zhkai 评论0 收藏0
  • PHP 迁移 Mcrypt 至 OpenSSL 加密算法详解

    摘要:下文中我们将分别使用和来实现加解密,二者同步加解密的要点为使用何种填充算法。下面我们给出填充算法的实现填充算法移去填充算法默认使用自动对待加密数据进行填充以对齐加密算法数据块长度。需固定使用,并通过调整的长度,来实现加密算法。 对称加解密算法中,当前最为安全的是 AES 加密算法(以前应该是是 DES 加密算法),PHP 提供了两个可以用于 AES 加密算法的函数簇:Mcrypt 和 ...

    AlanKeene 评论0 收藏0
  • PHP加密与实际应用

    摘要:加密算法以字符十六进制数字形式返回散列值。加密算法是加密是的干扰码,使编码更安全可选的盐值字符串。返回的数据可能是二进制的 数据加密可以简单的理解为:明文(文件或者数据)-->算法处理-->不可读的密文,进而达到加密的效果。 php中的几种加密方式 md5加密算法 crypt算法 sha1加密算法 URL编码技术编码 base64编码 其中 md5、crypt、sha1 都是单向加...

    lakeside 评论0 收藏0
  • 转载:非常实用的PHP常用函数汇总

    摘要:使用方法如下截取字符串长度我们经常会遇到需要截取字符串含中文汉字长度的情况,比如标题显示不能超过多少字符,超出的长度用表示,以下函数可以满足你的需求。,下载创建一个目录树 1、PHP加密解密 PHP加密和解密函数可以用来加密一些有用的字符串存放在数据库里,并且通过可逆解密字符串,该函数使用了base64和MD5加密和解密。 function encryptDecrypt($key, $...

    Little_XM 评论0 收藏0
  • PHP 7 修改了什么呢 --1

    摘要:此版本被认为是在年发布后最重要的变化。标量类型声明有两种选择强制强制性是默认模式,不需要指定。严格严格模式有明确的暗示。 PHP7是什么鬼? PHP7是PHP编程语言的一个主要版本,并号称是开发Web应用程序的一次革命,可开发和交付移动企业和云应用。此版本被认为是PHP在2004年发布PHP5后最重要的变化。 新功能 PHP7有加入几十个功能,最显著的是下面提到 - 改进的性能 - P...

    svtter 评论0 收藏0
  • PHP 与 C++ RSA加解密问题记录

    摘要:第二次访问接口,客户端需使用返回公钥加密访问参数,之后将加密后的参数和一起发送给服务端进行验证。关于函数的详细介绍可以看上一位朋友的博客,链接在此简单总结用加密公钥传递给用公钥加密信息传递给解密 RSA非对称加密,在网络鉴权中使用很多。本人也是在PHP与C++交互鉴权时出现问题,在解决问题过程中发现,网上对相关问题的描述很少,所在这里记录下,希望对遇到相似问题的朋友有所帮助。 问题情景...

    testHs 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<