1,108
社区成员
发帖
与我相关
我的任务
分享
//Public function pub_f_str_xor (string abl_source) returns string
long i
long ll_len1
long ll_len2
long ll_key[]
long ll_source
long ll_keychr
blob lbl_source, lbl_text
blob{2} lbl_word // 两个空字节
byte lby_buf
string as_key
as_key = "cntao"
ll_len1 = LenA(as_key)
for i = ll_len1 to 1 step -1
ll_key[i] = AscA(MidA(as_key, i, 1))
next
lbl_source = Blob(as_source, EncodingANSI!)
lbl_text = lbl_source // 初始化变量
ll_len2 = LenA(lbl_source)
for i = 1 to ll_len2
lbl_word = BlobMid(lbl_source, i, 1) // 覆盖第一个字节,第二个字节保持为 0
ll_source = Asc(Char(lbl_word)) // 得到第一个字节的 ascii 码
ll_keychr = ll_key[1 + (Mod(i - 1, ll_len1))]
SetByte(lbl_text, i, Byte(256 + ll_keychr - ll_source))
next
//messagebox("pb12 [" + as_source + "]", "[" + string(lbl_text, EncodingANSI!) + "]")
return String(lbl_text, EncodingANSI!)