php可逆加密代码:

参数一:要加密的文本

参数二:密码

function jiami($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{$x};
        $x++;
    }
    for ($i = 0; $i < $len; $i++) {
		$str.=ord($data{$i})-ord($char{$i}).',';/*用于分割密文的分割符,必须与解密里的一致*/
    }
    return $str;
}

php解密算法

function jiemi($data, $key){
	$data=substr($data,0,strlen($data)-strlen(','));/*用于分割密文的分割符,必须与加密里的一致*/
	$array=explode(",",$data);
	$md5=md5($key);
	while (strlen($md5)<count($array)){
	$md5=$md5.md5($key);
	}
	$str="";
	$md5=substr($md5,0,count($array));
	for ($i=0; $i<count($array); $i++){
		$code=(int)$array[$i] + (int)ord($md5{$i});
		$str.=chr($code);
	}
	return $str;
}


易语言加密算法(与上方php加密结果一样): 可以互相通用

.版本 2
.支持库 commobj
.支持库 dp1

.子程序 php加密文本, 文本型, 公开, 与php加密一致的一种算法
.参数 原文, 文本型
.参数 密码, 文本型
.参数 网页是否utf8, 逻辑型, 可空
.局部变量 原文长度, 整数型
.局部变量 key, 文本型
.局部变量 密, 文本型
.局部变量 i, 整数型
.局部变量 原文字符, 整数型
.局部变量 密文字符, 整数型
.局部变量 对象, 快速文本对象

.如果真 (是否为空 (网页是否utf8))
    网页是否utf8 = 真
.如果真结束

.如果 (网页是否utf8)
    key = 取数据摘要 (到字节集 (编码_gb2312到utf8 (密码)))
    原文 = 编码_gb2312到utf8 (原文)
.否则
    key = 取数据摘要 (到字节集 (密码))
.如果结束

原文长度 = 取文本长度 (原文)
.判断循环首 (取文本长度 (密) < 原文长度)
    密 = 密 + key
.判断循环尾 ()
密 = 取文本左边 (密, 原文长度)
对象.置文本 (“”)
.计次循环首 (原文长度, i)
    原文字符 = 取字节集数据 (到字节集 (取文本中间 (原文, i, 1)), 3, )
    密文字符 = 取字节集数据 (到字节集 (取文本中间 (密, i, 1)), 3, )
    对象.添加 (到文本 (原文字符 - 密文字符), “F”)
.计次循环尾 ()
返回 (对象.取文本 (, ))

易语言解密算法:可以解密上方 php加密的文本和易语言加密的文本

.版本 2
.支持库 commobj
.支持库 dp1

.子程序 php解密文本, 文本型, 公开, 加密算法 查看:   #php加密函数
.参数 密文, 文本型
.参数 密码, 文本型
.参数 网页是否utf8, 逻辑型, 可空, 如果网页内些的utf8
.局部变量 key, 文本型
.局部变量 对象, 快速文本对象
.局部变量 array, 文本型, , "0"
.局部变量 a, 整数型
.局部变量 密, 文本型
.局部变量 字节2, 字节集
.局部变量 i, 整数型
.局部变量 字节2数字, 整数型

.如果真 (是否为空 (网页是否utf8))
    网页是否utf8 = 真
.如果真结束

.如果 (网页是否utf8)
    key = 取数据摘要 (到字节集 (编码_gb2312到utf8 (密码)))
.否则
    key = 取数据摘要 (到字节集 (密码))
.如果结束
对象.置文本 (密文)
array = 对象.分割文本 (“分隔符可以自定义”, )
a = 取数组成员数 (array)
.判断循环首 (取文本长度 (密) < a)
    密 = 密 + key
.判断循环尾 ()
密 = 取文本左边 (密, a)
对象.清除文本 ()
.计次循环首 (取数组成员数 (array), i)
    字节2 = 到字节集 (取文本中间 (密, i, 1))
    字节2数字 = 到整数 (取字节集数据 (字节2, 1, ))
    对象.添加 (字符 (到数值 (array [i]) + 字节2数字))
.计次循环尾 ()
.如果 (网页是否utf8)
    返回 (编码_utf8到gb2312 (对象.取文本 (, )))
.否则
    返回 (对象.取文本 (, ))
.如果结束