php可逆加密代码:

参数一:要加密的文本

参数二:密码

function yanzheng_jiami($data, $key){
    $key    =    md5($key);
    $x        =    0;
    $len    =    strlen($data);
    $l        =    strlen($key);
	 $char="";
	 $str="";
    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

.子程序 解密用户数据, 文本型, 公开
.参数 密文, 文本型
.参数 密码, 文本型
.局部变量 key, 文本型
.局部变量 对象, 快速文本对象
.局部变量 array, 文本型, , "0"
.局部变量 密, 文本型
.局部变量 字节2, 字节集
.局部变量 i, 整数型
.局部变量 字节2数字, 整数型

key = 取数据摘要 (到字节集 (密码))
对象.置文本 (密文)
array = 对象.分割文本 (“,”, )
.判断循环首 (取文本长度 (密) < 取数组成员数 (array))
    密 = 密 + key
.判断循环尾 ()
密 = 取文本左边 (密, 取数组成员数 (array))
对象.清除文本 ()
.计次循环首 (取数组成员数 (array), i)
    字节2 = 到字节集 (取文本中间 (密, i, 1))
    字节2数字 = 到整数 (取字节集数据 (字节2, 1, ))
    对象.添加 (字符 (到数值 (array [i]) + 字节2数字))
.计次循环尾 ()
返回 (对象.取文本 (, ))

C#解密算法

//using System.Security.Cryptography; //MD5 加密需要引入这个

        public static string GetMD5(string str)
        {
            MD5 md5 = MD5.Create();
            byte[] bin = Encoding.Default.GetBytes(str);
            byte[] md5buffer = md5.ComputeHash(bin);
            string md5str = "";
            for (int i = 0; i < md5buffer.Length; i++)
            { md5str += md5buffer[i].ToString("X2"); }
            return md5str;
        }
        public static string 解密数据(string 密文,string 密码)
        {
            密文 = 密文.Remove(密文.Length - 1);
            string key = GetMD5(密码).ToLower();
            string 密 = "";

            string[] array = 密文.Split(',');
            while (密.Length < array.Length){
                密 = 密 + key;
            }
            密 = 密.Remove(array.Length);
            char[] charArr = new char[array.Length];
            for (int i = 0; i < array.Length; i++){

                byte[] 字节2 = Encoding.Default.GetBytes(密.Substring(i, 1));
                int x = Convert.ToInt32(字节2[0]) + Convert.ToInt32(array[i]);
                charArr[i] = Convert.ToChar(x);

            }
            string 结果 = new string(charArr);
            return 结果;
        }


相关推荐

易语言 修改ie版:使文本浏览框互联网浏览器变成IE9 IE10 IE11等版

因为有些网页已经不再支持旧版本的ie浏览器,有的会显示错位.有的检测到你的ie版本过低干脆不给你显示那么易语言如何来修改ie内核版本呢?一句代码即可实现修改ie内核版本,使超文本浏览框或互联网浏览器变

c++ 字符串函数 CString 封装易语言: 文本_取出中间文本

CString 文本_取出中间文本(CString &原文本, CString 左边文本, CString 右边文本){ CString 返回文本; int 开始位置 = 原文本.

php易语言发消息地通信 php通知易语言消息

@$fp = fsockopen('127.0.0.1', 19730, $errno, $errstr,0.001); //由于是本机链接 所以时间设置的很短 如果易语言没有启动服务

阿里云ecs linux远程连接账号密码 宝塔面板的使用

linux远程连接账号密码:点击修改密码修改即可. 账号默认是 root1:新装面板用户获取默认账号密码命令:bt default进入实例管理 创建安全组规则. 添加8888端口,才可以访问.

易语言设置某程序开机启动 写注册表

开机启动代码:写注册项 (#本地机器, “software\\microsoft\\windows\\CurrentVersion\\Run\\xxxx启动项”, “D:\\xxx程序路径.exe”)删除启动项删

易语言html转实体源

原版:.版本 2 .子程序 Html实体转文本, 文本型, , 把Html实体符号转成正常文本 .参数 字符串, 文本型 .参数 次数, 整数型, 可空 .局部变量 _Dom, 对象 .

易语言载入失败程序不能被编译! 解决方案

如果一个易语言源码打开的时候,提示载入失败的程序不能被编译!那么很可能当时写这个源码的易语言版本跟你现在用的不一样.(或者你引用的模块)如果出现这种情况.有两种解决方法第一种:切换易语言版本.这个比较

易语言右键新建程序没有了怎么恢复?

新建一个记事本文件在里面写入以下代码:注意易语言的路径需要自己修改成你的易语言安装路径Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\\

易语言软件防破解方大全

目录《易语言软件加密技术》1一.易语言程序加密的目的51.保持软件的完整性52、保护软件开发者的权益5二.易语言程序加密的原则51.加密前要考虑周到且严密52.需要加密的内容要制定一个计划63.加密时

易语言 错误(10002): 指定子程序类方名称“”未找到。解决方

出现这个提示 最蛋疼的就是 不提示错误在哪一行!在海量的代码里 只告诉你有错误,但不告诉你在哪,这不是要命嘛?那么怎么来找错误在哪呢?寻找方法如下:首选保存源码.复制一份,命名为 找错误.e 然后打开