AHK简单加密解密

;内置文件
FileInstall, ascii.txt, ascii.txt
file := FileOpen("ascii.txt", "r")
ascii := file.Read()
file.Close()
;初始化0x00-0xFF的字节
Loop
{
if A_Index > 256
	Break
StringMid, out, ascii, %A_Index%, 1
SetFormat, IntegerFast, hex
hex := A_Index-1
StringReplace, hex, hex, 0x, , All
SetFormat, IntegerFast, d
Asc_%hex% := out
}


urlencode(string){
StringLen, len, string
Loop
{
if A_Index > %len%
	Break
SetFormat, IntegerFast, hex ;运算结果为HEX
StringMid, out, string, %A_Index%, 1
hex := Asc(out) ;获取单字节ascii值
hex := 0xFF-hex ;0xFF-当前值
StringReplace, hex, hex, 0x, , All ;去掉0x
SetFormat, IntegerFast, d ;改回十进制
StringLen, len2, hex ;hex长度
if len2 = 1
	hex = 0%hex% ;补位
StringLeft, l, hex, 1 ;前后交换
StringRight, r, hex, 1
hex = %r%%l%
content = %content%`%%hex%
}
Return content
}


;解码函数
urldecode(string){
StringSplit, var, string, `% ;用%分割
Loop
{
if A_index > %var0%
	Break
hex := var%A_Index% ;取出变量
if A_Index > 1
	{
	StringLen, len2, hex
	if len2 = 1
		hex = 0%hex%
	StringLeft, l, hex, 1
	StringRight, r, hex, 1
	hex = %r%%l%
	hex = 0x%hex%
	SetFormat, IntegerFast, hex ;运算结果为HEX
	hex := 0xFF-hex
	StringReplace, hex, hex, 0x, , All
	asc_var := Asc_%hex%
	SetFormat, IntegerFast, d
	content = % content asc_var
	}
}
return content
}


;去%版本

urlencode2(string){
StringLen, len, string
Loop
{
if A_Index > %len%
	Break
SetFormat, IntegerFast, hex ;运算结果为HEX
StringMid, out, string, %A_Index%, 1
hex := Asc(out) ;获取单字节ascii值
hex := 0xFF-hex ;0xFF-当前值
StringReplace, hex, hex, 0x, , All ;去掉0x
SetFormat, IntegerFast, d ;改回十进制
StringLen, len2, hex ;hex长度
if len2 = 1
	hex = 0%hex% ;补位
StringLeft, l, hex, 1 ;前后交换
StringRight, r, hex, 1
hex = %r%%l%
content = %content%%hex%
}
Return content
}


;解码函数
urldecode2(string){
Loop
{
if string =
	Break
StringLeft, hex, string, 2 ;取出变量
StringTrimLeft, string, string, 2
StringLen, len2, hex
if len2 = 1
	hex = 0%hex%
StringLeft, l, hex, 1
StringRight, r, hex, 1
hex = %r%%l%
hex = 0x%hex%
SetFormat, IntegerFast, hex ;运算结果为HEX
hex := 0xFF-hex
StringReplace, hex, hex, 0x, , All
asc_var := Asc_%hex%
SetFormat, IntegerFast, d
content = % content asc_var
}
return content
}


;测试
a := urlencode2("以读取方式打开含有 UTF-8 或 UTF-16 字节顺序标记(BOM)的文件时,会把文件指针放置到这个标志后来从输出中排除 BOM。因此,在刚刚打开这样的文件时 File.Position 可能为 3 或 2。")
b := urldecode2(a)
MsgBox, 编码:`n%a%`n解码:`n%b%


给TA捐赠
共{{data.count}}人
人已捐赠
其他

ahk爬虫

2020-3-26 13:46:03

其他案例

AHK简单闹钟

2020-3-26 13:56:15

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索