PHP实现加强版加密解密类实例_php技巧

本文实例讲述了PHP实现加强版加密解密类。分享给大家供大家参考。具体如下:

<?php
class Ender{
  private $enkey;//加密解密用的密钥
  private $rep_char='#';
  //替换加密后的base64字符串中的=,因为=在有些场合是禁止使用的,
  //这里可以用一个允许的字符作为替换。
  //构造参数是密钥
  public function __construct($key=''){
    if(!$key){
      $this->enkey=$key;
    }
  }
  //设置密钥http://blog.ddian.cn
  public function set_key($key){
    $this->enkey=$key;
  }
  private function keyED($txt,$encrypt_key)
  {
  $encrypt_key = md5($encrypt_key);
  $ctr=0;
  $tmp = "";
  for ($i=0;$i<strlen($txt);$i++)
  {
  if ($ctr==strlen($encrypt_key)) $ctr=0;
  $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
  $ctr++;
  }
  return $tmp;
  }
  //加密字符串
  public function encrypt($txt,$key='')
  {
  if(!$key){
    $key=$this->enkey;
  }
  srand((double)microtime()*1000000);
  $encrypt_key = md5(rand(0,32000));
  $ctr=0;
  $tmp = "";
  for ($i=0;$i<strlen($txt);$i++)
  {
  if ($ctr==strlen($encrypt_key)) $ctr=0;
  $tmp.= substr($encrypt_key,$ctr,1) .
  (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
  $ctr++;
  }
  $r=base64_encode($this->keyED($tmp,$key));
  $r=str_replace('=',$this->rep_char,$r);
  return $r;
  }
  //解密字符串
  public function decrypt($txt,$key='')
  {
  $txt=str_replace($this->rep_char,'=',$txt);
  $txt=base64_decode($txt);
  if(!$key){
      $key=$this->enkey;
  }
  $txt = $this->keyED($txt,$key);
  $tmp = "";
  for ($i=0;$i<strlen($txt);$i++)
  {
  $md5 = substr($txt,$i,1);
  $i++;
  $tmp.= (substr($txt,$i,1) ^ $md5);
  }
  return $tmp;
  }
}

希望本文所述对大家的php程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
加密解密类
加密解密实例、pdf加密文件怎么解密、加密文件如何解密、加密解密、加密的pdf怎么解密,以便于您获取更多的相关知识。

时间: 2024-12-23 05:57:55

PHP实现加强版加密解密类实例_php技巧的相关文章

php中base64_decode与base64_encode加密解密函数实例_php技巧

本文实例讲述了php中base64_decode与base64_encode加密解密函数.分享给大家供大家参考.具体分析如下: 这两个函数在php中是用得对php代码进行加密与解密码的base64_encode是加密,而base64_decode是解密了,下面我们看两个简单实例. base64_encode语法:string base64_decode(string data); 复制代码 代码如下: $str='d3d3LmpiNTEubmV0IOiEmuacrOS5i+Wutg==';   

php结合md5的加密解密算法实例_php技巧

本文实例讲述了php结合md5的加密解密算法.分享给大家供大家参考,具体如下: <?php /* * Created on 2016-9-30 * */ 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{$

支持中文的php加密解密类代码_php技巧

php代码类: 复制代码 代码如下: <?php /** * Copyright (c) 2011 - 01 XatuDream * XatuDream All Rights Reserved. * Support:185390516.qzone.qq.com * QQ:185390516 * Author:Lau Version:1.01 * Date:2010-08-12 09:28:32 */ ! defined ( 'WORKSPACE' ) && exit ( "

PHP加密解密类实例分析

  这篇文章主要介绍了PHP加密解密类,实例分析了php实现加密与解密的原理与相关技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了PHP加密解密类.分享给大家供大家参考.具体分析如下: 这段代码支持 数组加密 , 密文有效期, 各种对称加密 其中参数如下: * @use ption::en($string, $key); * @param String $string 需要加密的字串 * @param String $skey 密钥 * @param int $expiry 密文有效

PHP加密解密类实例分析_php技巧

本文实例讲述了PHP加密解密类.分享给大家供大家参考.具体分析如下: 这段代码支持 数组加密 , 密文有效期, 各种对称加密 其中参数如下: * @use ption::en($string, $key); * @param String $string 需要加密的字串 * @param String $skey 密钥 * @param int $expiry 密文有效期, 加密时候有效, 单位 秒,0 为永久有效 * @return String 1. php代码如下: /* * -工具库-加

php实现RSA加密类实例_php技巧

本文实例讲述了php实现RSA加密类.分享给大家供大家参考.具体分析如下: 通过openssl实现的签名.验签.非对称加解密,需要配合x.509证书(如crt和pem)文件使用. 由于各种原因,该类并不十分完善,欢迎各种测试! <?php /** * RSA算法类 * 签名及密文编码:base64字符串/十六进制字符串/二进制字符串流 * 填充方式: PKCS1Padding(加解密)/NOPadding(解密) * * Notice:Only accepts a single block. B

php自定义加密与解密程序实例_php技巧

本文实例讲述了php自定义加密与解密程序.分享给大家供大家参考.具体分析如下: PHP3 Cryption是一个非常容易被破解,不安全的加密功能,不应该是非常重要的东西用,虽然加密是好的,它不会阻碍对尖端开裂程序的严格考验. 不过,试试吧...这是一个伟大的方式来加密和解密字符串.与许多隐窝功能,这是双向的.基于一个密码,您可以加密或解密.您也可以解密或加密过无数次,通过循环或其他方法.字母表中的字符也是变化的.所有这些事情让你修改和巩固加密. 关于这最佳的部分?您可以加密与解密或一张纸和一支铅

php基于base64解码图片与加密图片还原实例_php技巧

本文实例讲述了php基于base64解码图片与加密图片还原的实现方法.分享给大家供大家参考.具体实现方法如下: 本例中$data是一段经过base64编码的图片.具体代码如下: 复制代码 代码如下: <?php //文件名:base64.php $data="/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ

php实现URL加密解密的方法_php技巧

本文实例讲述了php实现URL加密解密的方法.分享给大家供大家参考,具体如下: <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"> <head> <meta http-equiv="content-type" content="text/html; charset=gb2312" /> <meta http-equiv=&q