qq_36257233
qq_36257233
2017-06-14 08:49

asp 执行出错啊。解码, showbo大神千呼万应你快来啊。

5
  • 解密
  • 编码
  • asp.net

1.txt 45678 | 12-23-23-123-
2.txt的45678在最后一行。
下标越界: '[number: 0]' 
如果在2.txt里面查到不到1.txt的scode代码,应该在1.txt里面读取一行新的scode代码,然后再2.txt里面继续查找啊。。。


<%@LANGUAGE="VBScript" CODEPAGE="65001"%>
<!--#include file="aspJSON1.17.asp"-->
<meta charset="utf-8" />
<%
Function EnCodeY(sText,sCode)'当参数传入
  Dim arrCode(),i,flag,strResult

  arrData = split(sText, "-")

  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

function readText(path,charset)'读文件
  set ts=server.CreateObject("adodb.stream")
  ts.charset=charset'内容编码
  ts.mode=3'读写模式
  ts.type=2'文本模式
  ts.open
  ts.LoadFromFile path
  readText=ts.readtext
  ts.close:set ts=nothing
end function

function writeText(path,charset,text)'写文件
  set ts=server.CreateObject("adodb.stream")
  ts.mode=3'写写模式
  ts.type=2'文本模式
  ts.open
  ts.charset=charset'内容编码
  ts.WriteText text,1
  ts.SaveToFile path,2
  ts.close:set ts=nothing
end function
function findCode(v,arr)'查找开头数字一样的code值
  dim i,l,arrCode
  l=ubound(arr)
  for i=0 to l
    arrCode=split(arr(i)," | ")
    if arrCode(0)=v then
      findCode=arrCode(1)
      exit function
    end if
  next
end function

function doDecode(path1,pathcode,pathrst)'path1:要解码的文件物理路径 pathcode:code文件物理路径  pathrst:解码保存文件物理路径
  dim arrA,arrCode,l,i,s,scode,arr
    '============
  arrA=split(replace(readText(path1,"gb2312"),chr(13),""),chr(10))'注意如果要解密的字符不存在1.txt里面注意修改这里,下面的code同理

  arrCode=split(replace(readText(pathcode,"gb2312"),chr(13),""),chr(10))
  s=""
  l=ubound(arrA)
  for i=0 to l
    arr=split(arrA(i)," | ")
    scode=findCode(arr(0),arrCode)
    if scode="" then
      response.Write arr(0)&"找不到code代码<br>"
    else
      if s<>"" then s=s&chr(13)&chr(10)
      s=s&arr(0)&" | "&EnCodeY(arr(1),scode)'如果不需要前缀id,去掉arr(0)&" | "&
    end if
  next
  writeText pathrst,"gb2312",s
end function

doDecode server.MapPath("1.txt"),server.MapPath("2.txt"),server.MapPath("3.txt")
%>
解码完毕,<a href='3.txt' target='_blank'>点击查看解码文件</a>
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答