资讯专栏INFORMATION COLUMN

【转载】PHP明文加密

lbool / 3582人阅读

转载地址忘记了,刚开始学PHP时,做的笔记

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<=255;$i++){
           $rndkey[$i]=ord($key[$i%$key_length]);
        $box[$i]=$i;
    }
    for($j=$i=0;$i<256;$i++){
        $j=($j+$box[$i]+$rndkey[$i])%256;
        $tmp=$box[$i];
        $box[$i]=$box[$j];
        $box[$j]=$tmp;
    }
    for($a=$j=$i=0;$i<$string_length;$i++){
        $a=($a+1)%256;
        $j=($j+$box[$a])%256;
        $tmp=$box[$a];
        $box[$a]=$box[$j];
        $box[$j]=$tmp;
        $result.=chr(ord($string[$i])^($box[($box[$a]+$box[$j])%256]));
    }
    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));
    }
} 





$str = "123456";
echo "加密前:".$str."
"; $key = "999999999"; $token = encrypt($str, "E", $key); echo "加密后:".encrypt($str, "E", $key)."
"; echo "解密后:".encrypt($token, "D", $key)."
";

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

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

相关文章

  • 加密算法之非对称加密

    摘要:算法公钥加密算法是年由罗纳德李维斯特阿迪萨莫尔和伦纳德阿德曼一起提出的。是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被推荐为公钥数据加密标准。 上篇文章介绍了对称加密的原理,但是它的最大问题就是加密和解密的密钥是相同的,并且不能保证密钥能安全的送到双方手里,即使安全的送到双方手里,免不了内部会有卧底的存在 非对称加密 既然有对称加密,那么自然会联想到非...

    dongxiawu 评论0 收藏0
  • 如何对用户密码进行加密

    摘要:结论对用户密码进行加密时需要做到防止用户密码明文被窃听交给,明文传输。为什么盐可以明文存储攻击者很难有足够的计算资源和存储空间建立海量的哈希值密码数据库,针对单条用户记录,建立哈希值密码数据库进行攻击的成本过高。 摘要 密码验证是很常见的需求,如何在实现功能之余,防止用户密码泄露,已经有了很成熟的方案。这篇文章把自己的思考和结论做一下记录。 结论 对用户密码进行加密时需要做到: 防止用...

    张率功 评论0 收藏0
  • 关于PHP加解密的懒汉入门篇(API安全加强篇一)

    摘要:由于密钥被暴露了,所以必须换新的密钥,元首这会儿只能走途径告诉古德里安新的密钥,这会儿逗逼的事情来了,如何对密钥进行加密。但是,有一点是值得说明,那就是无论是对称加密还是非对称加密,都顶不住用机器是强行暴力猜解私钥。 懒汉 入门 这两点就足以说明这篇文章不想要着有什么高端大气的技术内容,我跟你讲,全是水。不可能有什么质数素数、椭圆曲线加密、迪菲-赫尔曼什么的,不可能有的。 首先我不...

    waterc 评论0 收藏0
  • SpringBoot项目配置文件中密码的加密

    摘要:配置文件密码加密配置秘钥加密算法从版本开始,默认的加密解密算法已更改为以下版本默认为上述不配置的话,其默认的秘钥也是以上的并不是很多人理解的盐,这是加密密钥。思考以上的步骤中,根据的用法,基本上完成了对配置文件中密码的加密。作者:追梦1819原文:https://www.cnblogs.com/yanfei1819/p/15565862.html版权声明:本文为博主原创文章,转载请附上博文链...

    frontoldman 评论0 收藏0
  • 实战还原PHP加密文件

    摘要:先说环境实战过程手头上有一个加密过的项目和一个扩展的动态连接库。根据数据更改里面的文件。主要的时间是在试探加密参数上,很幸运的是文件也没有加壳。在破解的过程中也了解了加密的缺陷性,所以才有了下一篇文章通用加密文件还原方法。 先说环境: Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-52-generic x86_64) PHP 5.5.9-1u...

    yibinnn 评论0 收藏0

发表评论

0条评论

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