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;
    	}
    }
    

      

  • 相关阅读:
    I2C总线的设计
    注意: Cyusb2.0插在PC上的端口
    BULKTranfer
    浅析值类型与引用类型的内存分配
    sql server2008用ip远程连接,解决默认连不上的问题
    Decimal 结构
    单例模式 需要用showdialog 如果用show需要做如下改动
    NET4.0新功能之String.IsNullOrWhiteSpace() 方法
    SQLserver2008打不开的问题
    (C#)Winform修改DateTimePicker控件的背景色
  • 原文地址:https://www.cnblogs.com/Mwsoft/p/4332441.html
Copyright © 2011-2022 走看看