易语言实现-JScript.Encode加密解密(三)

来源:互联网 发布:开发者头条 知乎 编辑:程序博客网 时间:2024/06/09 16:24

在没有开始之前先看一下 下面的帖子

易语言实现-JScript.Encode加密解密(一)

易语言实现-JScript.Encode加密解密(一)

开始 本帖来自易语言官方论坛======================================

 

.版本 2

.常量 常量1, "<文本长度: 73>"

============================

function uncompile(so)
{
 
source = unescape(so);
  return source;
}

===============================
.常量 常量2, "<文本长度: 69>"

===============================
function compile(so)
{
 
source = escape(so);
  return source;
}

=================================

.版本 2
.支持库 RegEx

.程序集 窗口程序集1

.子程序 _解密按钮_被单击, , , 解密文本
.局部变量 临时文本, 文本型
.局部变量 字符, 整数型
.局部变量 正则表达式, 正则表达式
.局部变量 搜索结果, 搜索结果, , "0"
.局部变量 计次, 整数型

.如果 (寻找文本 (编辑框2.内容, #换行符, , 假) ≥ 1)
    .如果真 (寻找文本 (编辑框2.内容, “%”, , 假) ≥ 1)
        .判断循环首 (字符 ≠ -1)
            字符 = 寻找文本 (编辑框2.内容, “%”, , 假)
            .如果 (字符 = -1)
                跳出循环 ()
            .否则
                正则表达式.创建 (“(%[0-9a-zA-Z]{1,})”, )
                搜索结果 = 正则表达式.搜索全部 (编辑框2.内容)
                .计次循环首 (取数组成员数 (搜索结果), 计次)
                    临时文本 = 搜索结果 [计次].取子匹配文本 (编辑框2.内容, 1, )
                .计次循环尾 ()
            .如果结束
            编辑框1.内容 = 子文本替换 (编辑框2.内容, 临时文本, unescape (临时文本), , , 真)
            ' 输出调试文本 (临时文本)
            ' 输出调试文本 (unescape (临时文本))
        .判断循环尾 ()
    .如果真结束

.否则
    编辑框1.内容 = unescape (编辑框2.内容)
.如果结束


.子程序 unescape, 文本型, , 解密文本
.参数 参数, 文本型
.局部变量 对象, 对象
.局部变量 解密文本, 文本型

对象.创建 (“MSScriptControl.ScriptControl”, )
对象.写属性 (“Language”, “JavaScript”)
对象.数值方法 (“AddCode”, #常量1)
解密文本 = 对象.通用方法 (“Eval”, “uncompile('” + 参数 + “')”).取文本 ()
返回 (解密文本)


.子程序 _加密按钮_被单击, , , 加密文本
.局部变量 临时文本, 文本型, , "0"
.局部变量 计次, 整数型

.如果 (寻找文本 (编辑框1.内容, #换行符, , 假) ≥ 1)
    临时文本 = 分割文本 (编辑框1.内容, #换行符, )
    编辑框2.内容 = “”
    .计次循环首 (取数组成员数 (临时文本), 计次)
        编辑框2.内容 = 编辑框2.内容 + escape (临时文本 [计次]) + “%0d%0a” + #换行符
    .计次循环尾 ()
.否则
    编辑框2.内容 = escape (编辑框1.内容)
.如果结束


.子程序 escape, 文本型, , 加密文本
.参数 参数, 文本型
.局部变量 对象, 对象
.局部变量 加密文本, 文本型

对象.创建 (“MSScriptControl.ScriptControl”, )
对象.写属性 (“Language”, “JavaScript”)
对象.数值方法 (“AddCode”, #常量2)
加密文本 = 到小写 (对象.通用方法 (“Eval”, “compile('” + 参数 + “')”).取文本 ())
返回 (加密文本)

0 0