本文目录一览:
易语言文字加密解密问题!
建议不要对加密过的数据直接用到文本()命令转换为文本,建议用base64编码为文本,解密时先base64解码,然后再解密。
可以用超级加解密支持库里的BASE64编码 ()和BASE64解码 ()命令来实现编码和解码。
如果不想下支持库的话下面是BASE64编码和BASE64解码的代码:
.版本 2
.子程序 BASE64编码, 文本型, 公开, BASE64编码处理(返回编码后的文本)
.参数 待编码数据, 字节集, , 待编码字节集
.局部变量 余数
.局部变量 临时, 字节型, , "3"
.局部变量 变量
.局部变量 集合, 字节集
.局部变量 长度, 整数型
.局部变量 字符, 字节集
.局部变量 i
长度 = 取字节集长度 (待编码数据)
.如果真 (长度 < 1)
返回 (“”)
.如果真结束
余数 = 长度 % 3
.如果真 (余数 > 0)
待编码数据 = 待编码数据 + 取空白字节集 (3 - 余数)
.如果真结束
长度 = 取字节集长度 (待编码数据)
字符 = 取空白字节集 (长度 × 4 ÷ 3)
i = 1
集合 = 到字节集 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”)
.变量循环首 (1, 长度, 3, 变量)
临时 [1] = 待编码数据 [变量]
临时 [2] = 待编码数据 [变量 + 1]
临时 [3] = 待编码数据 [变量 + 2]
字符 [i] = 集合 [右移 (临时 [1], 2) + 1]
字符 [i + 1] = 集合 [左移 (位与 (临时 [1], 3), 4) + 右移 (临时 [2], 4) + 1]
字符 [i + 2] = 集合 [左移 (位与 (临时 [2], 15), 2) + 右移 (临时 [3], 6) + 1]
字符 [i + 3] = 集合 [位与 (临时 [3], 63) + 1]
i = i + 4
.变量循环尾 ()
.如果真 (余数 > 0)
长度 = 取字节集长度 (字符)
.如果 (余数 = 1)
字符 [长度 - 1] = 取代码 (“=”, )
字符 [长度] = 取代码 (“=”, )
.否则
字符 [长度] = 取代码 (“=”, )
.如果结束
.如果真结束
返回 (到文本 (字符))
.子程序 BASE64解码, 字节集, 公开, BASE64解码处理(返回解码后的字节集数据)
.参数 编码文本, 文本型, 参考, 待解码的文本
.局部变量 文本长度
.局部变量 整倍数
.局部变量 三字节组, 字节型, , "3"
.局部变量 四字节组, 字节型, , "4"
.局部变量 编码值
.局部变量 X
.局部变量 n
.局部变量 二进制数据, 字节集
编码文本 = 删全部空 (编码文本)
编码文本 = 子文本替换 (编码文本, #换行符, , , , 真)
文本长度 = 取文本长度 (编码文本)
整倍数 = 文本长度 \ 4
.如果真 (文本长度 % 4 ≠ 0)
整倍数 = 整倍数 + 1
.如果真结束
.计次循环首 (整倍数, X)
.计次循环首 (4, n)
四字节组 [n] = 取代码 (编码文本, (X - 1) × 4 + n)
编码值 = 寻找文本 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”, 字符 (四字节组 [n]), , 假)
.如果真 (编码值 = -1)
跳出循环 ()
.如果真结束
四字节组 [n] = 编码值 - 1
.计次循环尾 ()
三字节组 [1] = 位或 (四字节组 [1] × 4, 四字节组 [2] ÷ 16)
三字节组 [2] = 位或 (四字节组 [2] × 16, 四字节组 [3] ÷ 4)
三字节组 [3] = 位或 (四字节组 [3] × 64, 四字节组 [4])
二进制数据 = 二进制数据 + 到字节集 (三字节组)
处理事件 ()
.计次循环尾 ()
.如果真 (n < 5) ' 最后一组4字符是提前退出的,截取字节集
n = 5 - n
二进制数据 = 取字节集左边 (二进制数据, 取字节集长度 (二进制数据) - n)
.如果真结束
返回 (二进制数据)
易语言编写的软件需要机器码破解KEY
所谓的机器码,就是取本机cpu序列号 或 mac地址 或 硬盘特征码 这几种来加密做成的。想要破解就要了解他的加密方式。或者用od直追密码也行。
易语言破解方法
你认真看一下易语言的破解版,不论是完美破解还是通用破解,用的都是同一个KEY文件
再进入破解的易语言注册界面也会看到,注册序列号也被固定成了同一个。
这说明易使用的是非对称加密,长度为2268位的密钥,要破解这种算法基本是不可能的,而现在的破解方法则是截取(也就是hook)或改变读机器特征序列号的程序,让它指向固定的序列号(这个序列号可能是某个正版的企业版用户注册号),这样再附上那个序列号对应的key文件,破解就完成了。
你可以下一个hookdiskID(要全局常驻内存的hook),通过软件hook改变读硬盘ID的返回值,你会发现易未注册的版本的序列号改变了(如果是破解版则没有反应)
易语言文本加密 解密的问题
首先你自己查一下你自己写的代码,或是说你看过这加密与解密的参数没有?
加密数据(字节集数据,文本型密码,整数型算法)
解密数据(字节集数据,文本型密码,整数型算法)
你写的代码可能连你自己都看不懂吧,我是看不下去...抱歉!
------------------------------------------------------------------------------------------------------------
看一下你的代码,你加密的是编辑框1的内容,而你解密的是编辑框2的内容..所以解密出来的根本就不是被你加密过的数据。
-------------------------------------------------------------------------------------------------------------
以下是实现的代码,参考一下吧:
.版本 2
.支持库 dp1
.支持库 spec
.子程序 _按钮_被单击
.局部变量 加密文本, 字节集
.局部变量 解密文本, 字节集
加密文本 = 加密数据 (到字节集 (编辑框1.内容), “密码”, #RC4算法)
调试输出 (到字节集 (编辑框1.内容))
解密文本 = 解密数据 (加密文本, “密码”, #RC4算法)
调试输出 (到文本 (解密文本))
如果有不懂请追加提问!
易语言记事本加密解密代码
原型:
int WINAPI icePub_encryptFile(char *strFilename, char *strOutputFilename, char *strKey)
输入:strFilename 待加密文件名
strOutputFilename 加密后文件名
strKey 密钥串,任意长度
输出:
返回码:
原型:
int WINAPI icePub_decryptFile(char *strFilename, char *strOutputFilename, char *strKey)
输入:strFilename 加密文件名
strOutputFilename 解密后文件名
strKey 密钥串,任意长度
输出:
返回码:
文档里有icePubDLL.dll下载
易语言如何对软件解密读取加密数据
加密数据
(读入文件(“需要加密的文件”),“密码文本可自定义,解密需要用到”
,#RC4算法
)
解密数据
(读入文件(“需要解密的文件”),“加密的密码文本”
,#RC4算法)
了解一下这两个命令,返回类型为字节集,可以用写到文件写出加密后的文件
当你需要在软件中打开加密文件,可以新建一个字节集变量,存放解密后的数据,然后在从变量中读取数据