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

      

  • 相关阅读:
    Android 性能优化 四 布局优化merge标签的使用
    一种Android换肤机制的实现
    java提高篇(十)-----详解匿名内部类 ,形参为什么要用final
    Android源码之Matrix
    android 沉浸式状态栏
    [置顶]关于java中根据身份证求生日和年龄的问题
    将博客搬至CSDN
    android——fragment长时间home或者锁屏java.lang.IllegalArgumentException:No view found for id for....
    百度搜索附近加盟店等基于LBS云搜索功能的实现
    android——拍照,相册图片剪切其实就这么简单
  • 原文地址:https://www.cnblogs.com/Mwsoft/p/4332441.html
Copyright © 2011-2022 走看看