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;
}
}
PHP 简单的加密解密算法的更多相关文章
- Java 简单的加密解密算法
package cn.std.util; import java.nio.charset.Charset; public class DeEnCode { private static final S ...
- Java简单的加密解密算法,使用异或运算
package cn.std.util; import java.nio.charset.Charset; public class DeEnCode { private static final S ...
- 数据的加密传输——单片机上实现TEA加密解密算法
各位大侠在做数据传输时,有没有考虑过把数据加密起来进行传输,若在串口或者无线中把所要传的数据加密起来,岂不是增加了通信的安全性.常用的加密解密算法比如DES.RSA等,受限于单片机的内存和运算速度,实 ...
- 兼容javascript和C#的RSA加密解密算法,对web提交的数据进行加密传输
Web应用中往往涉及到敏感的数据,由于HTTP协议以明文的形式与服务器进行交互,因此可以通过截获请求的数据包进行分析来盗取有用的信息.虽然https可以对传输的数据进行加密,但是必须要申请证书(一般都 ...
- 一组PHP可逆加密解密算法
对于大部分密码加密,我们可以采用md5.sha1等方法.可以有效防止数据泄露,但是这些方法仅适用于无需还原的数据加密. 对于需要还原的信息,则需要采用可逆的加密解密算法. 下面一组PHP函数是实现此加 ...
- RC4加密解密算法
RC4相对是速度快.安全性高的加密算法.在实际应用中,我们可以对安全系数要求高的文本进行多重加密,这样破解就有一定困难了.如下测试给出了先用RC4加密,然后再次用BASE64编码,这样双重锁定,保证数 ...
- java 实现 DES加密 解密算法
DES算法的入口参数有三个:Key.Data.Mode.其中Key为8个字节共64位,是DES算法的工作密钥:Data也为8个字节64位,是要被加密或被解密的数据:Mode为DES的工作方式,有两种: ...
- md5加密以及可逆的加密解密算法
md5加密 package gov.mof.fasp2.gcfr.adjustoffset.adjust; import java.security.MessageDigest; public cla ...
- N个整数(数的大小为0-255)的序列,把它们加密为K个整数(数的大小为0-255).再将K个整数顺序随机打乱,使得可以从这乱序的K个整数中解码出原序列。设计加密解密算法,且要求K<=15*N.
N个整数(数的大小为0-255)的序列,把它们加密为K个整数(数的大小为0-255).再将K个整数顺序随机打乱,使得可以从这乱序的K个整数中解码出原序列.设计加密解密算法,且要求K<=15*N. ...
随机推荐
- 学习笔记--Quartz定时器
文章同步发表在博主网站朗度云,传输门:http://www.wolfbe.com/detail/201608/338.html 1.Quartz定时器执行流程 Quartz需要定义执行任务.触发器,在 ...
- 在Windows下设置环境变量 运行mysql程序变得更容易
在Windows下设置环境变量,点开始菜单,右键单击我的电脑--属性--高级--环境变量 可以看到PATH的变量是这样的: C:\WINDOWS;C:\WINDOWS\COMMAND 为了让运行m ...
- PHP中利用PCLZIP压缩解压文件
<?php include_once('pclzip.lib.php'); $archive = new PclZip('archive.zip'); /* $v_list = $archive ...
- 如何清除Linux 登陆信息及日志
本文介绍下,在linux中,如何清除访问日志.登陆日志以及曾用命令的方法.有需要的朋友,参考下吧. 在linux系统中,如何清除访问日志.登陆日志及曾使用过的命令呢? 本文介绍的方法,将删除所有日志, ...
- 一个不错的图片滑动展示插件 anythingslider
一个不错的图片http://css-tricks.com/anythingslider-jquery-plugin/ DEMO演示: http://css-tricks.github.io/Anyth ...
- Spark小课堂Week1 Hello Spark
Spark小课堂Week1 Hello Spark 看到Spark这个词,你的第一印象是什么? 这是一朵"火花",官方的定义是Spark是一个高速的.通用的.分布式计算系统!!! ...
- Opencv Mat的操作
cout << mat 有错误的原因 You are using OpenCV built with VS10. The ostream operator << in the ...
- 虚拟机安装Centos6.5之后的网络配置
我使用的是minimal模式安装的,默认是无法联网的,需要自己配置,下面我列举2种联网的配置方法 方法1: 默认使用的是NAT模式,修改/etc/sysconfig/network-scripts/i ...
- table 中实现 控制 指定列的 左对齐 右对齐方式
.listTable{ border-collapse:collapse; border-top:1px solid #8c9594; border-right:1px solid #8c9594; ...
- WPF中的多点触摸事件
UIElement在WPF4下添加了很多支持多点触摸的事件,通过它们可以在硬件支持的情况下处理多点触摸,以下通过代码来说明通过处理这些事件,我们可以做些什么: 一.触摸相关的多种事件,跟鼠标事件是对应 ...