zoukankan      html  css  js  c++  java
  • PHP 简单的加密解密算法

    <?php
    /**
     * 
     * @创建时间:2015-3-12 下午2:07:33
     * @作者:YuMing
     * @描述:异或加密解密类
     */
    class Yihuo extends CI_Controller {
    
    	//加密秘钥
    	public $key0 = '123456';
    	
    	function __construct() {
    		parent::__construct ();
    		header ( "Content-type:text/html;charset=utf-8" );
    	}
    	
    	public function  index(){
    		$this->load->view('templates/header');
    		$this->load->view('yihuo');
    		$this->load->view('templates/footer');
    	}
    	
    	/**
    	 * 
    	 * @创建时间:2015-3-12 下午2:06:47
    	 * @作者:YuMing
    	 * @描述:异或加密
    	 * @param string $str
    	 * @return string
    	 */	
    	public function encode($str = '') {
    		
    		$data = $this->input->post();
    		if(!empty($data['msg'])){
    			$str =$data['msg'];		
    		}
    		$keyBytes = $this->getBytes ( $this->key0 );
    		$bytes = $this->getBytes ( $str );
    		for($i = 0; $i < count ( $bytes ); $i ++) {
    			foreach ( $keyBytes as $keyBytes0 ) {
    				$bytes [$i] = $bytes [$i] ^ $keyBytes0;
    			}
    		}
    		
    		$encode_str= $this->toStr ( $bytes );
    		
    		echo $encode_str;
    		return $encode_str;
    	}
    	/**
    	 * 
    	 * @创建时间:2015-3-12 下午2:06:35
    	 * @作者:YuMing
    	 * @描述:异或解密
    	 * @param unknown $str
    	 * @return string
    	 */
    	public function decode($str ='') {
    		$data = $this->input->post();
    		if(!empty($data['msg'])){
    			$str =$data['msg'];
    		}
    		
    		$keyBytes = $this->getBytes ( $this->key0 );		
    		$bytes = $this->getBytes ( $str );
    		for($i = 0; $i < count ( $bytes ); $i ++) {
    			foreach ( $keyBytes as $keyBytes0 ) {
    				$bytes[$i] = $bytes [$i] ^ $keyBytes0;
    			}
    		}
    		$decode_str= $this->toStr ( $bytes );
    		echo $decode_str;
    		return $decode_str;
    	}
    	/**
    	 * 
    	 * @创建时间:2015-3-12 下午2:05:59
    	 * @作者:YuMing
    	 * @描述:将Bytes数组转换为String
    	 * @param unknown $bytes
    	 * @return string
    	 */
    	public static function toStr($bytes) {
    		$str = '';
    		foreach ( $bytes as $ch ) {
    			$str .= chr ( $ch );
    		}
    		return $str;
    	}
    	/**
    	 * 
    	 * @创建时间:2015-3-12 下午2:06:18
    	 * @作者:YuMing
    	 * @描述:将String转换为Bytes数组
    	 * @param unknown $string
    	 * @return multitype:number
    	 */
    	public static function getBytes($string) {
    		$bytes = array ();
    		for($i = 0; $i < strlen ( $string ); $i ++) {
    			$bytes [] = ord ( $string [$i] );
    		}
    		return $bytes;
    	}
    }
    

      

  • 相关阅读:
    投资银行的IT部门——不同之处与常见误解
    C++ error C2440: “类型转换” : 无法从“std::vector::iterator”转换为“
    查看端口占用
    Sc config http start= disabled
    DDL、DML和DCL的区别与理解
    不同网段,在路由器上如何设置网关
    服务器调优
    查看SQL Server版本信息
    基于32位Windows2003的数据库服务器优化,启用AWE,优化SQL Server
    在WIN7操作系统下,如何显示文件夹里文件的数目
  • 原文地址:https://www.cnblogs.com/Mwsoft/p/4332441.html
Copyright © 2011-2022 走看看