asp加密解密求解决下标越界: 'flag'

 这是解密的执行代码出现,怎么解决?下标越界解决以后,能从txt文本里读出每行加密的内容,写出到另一个txt里,谢谢。。。

Microsoft VBScript 运行时错误 错误 '800a0009' 

下标越界: 'flag' 

/2/5.asp,行 22 


==================================================================================
<%
Function EnCodeY(sText)
Dim arrCode()
Dim sCode
sCode = Request.Cookies("ddd")("Qmxanman")

arrData = split(sText, CHR(-24151))

cntData = UBOUND(arrData) - 1
cntCode = Len(sCode) - 1

Redim arrCode(cntCode)

For i = 0  To cntCode
arrCode(i) = Mid(sCode, i + 1, 1)
Next

flag = 0
strResult = ""
For i = 0 To cntData
strResult = strResult & CHR(Cint(arrData(i)) XOR ASC(arrCode(flag)))
IF flag = cntCode Then
flag = 0
Else
flag = flag + 1
End IF
Next

EnCodeY = strResult
End Function

a = "6々66々85々21々69々4々87々82々65々3々75々74々64々"
response.write EnCodeY(a)&"<br>"

%>
==================================================================================



下面加密这段没问题。求大牛解决啊。



==================================================================================
str = "abcdefghijk234567890lmnopqrstuvwxy"
strlen = 15
Randomize
sCode = ""
For enxI = 1 to strlen
r = Int((34 - 1 + 1) * Rnd + 1)
sCode = sCode & Mid(str,r,1)
Next

Function EnxCodeX(sText)
Dim arrxData()
Dim arrxCode()

cntData = Len(sText) - 1
cntCode = Len(sCode) - 1

Redim arrxData(cntData)
Redim arrxCode(cntCode)

For enxI = 0  To cntData
arrxData(enxI) = Mid(sText, enxI + 1, 1)
Next

For enxI = 0  To cntCode
arrxCode(enxI) = Mid(sCode, enxI + 1, 1)
Next

flag = 0
strResult = ""
For enxI = 0 To cntData
strResult = strResult & ((ASC(arrxData(enxI)) XOR ASC(arrxCode(flag)))) & CHR(-24151)
IF flag = cntCode Then
flag = 0
Else
flag = flag + 1
End IF
Next
EnxCodeX = strResult
End Function
================================================================================== 

没人会吗???????