level 1
黑暗森林的猎手
楼主
Private Function XOR_Encrypt(key As Integer, fileName As String, encryptFileName As String) As Boolean
On Error GoTo errHandler
Dim inputFileNo As Integer
Dim fileBytes() As Byte
Dim length As Long
XOR_Encrypt = False
Dim outputFileNo As Integer
inputFileNo = FreeFile()
FileOpen(inputFileNo, fileName, OpenMode.Binary)
outputFileNo = FreeFile()
FileOpen(outputFileNo, encryptFileName, OpenMode.Binary)
length = LOF(inputFileNo)
If length = 0 Then
MsgBox("退出加密:文件内容为空!", vbInformation, "提示")
Exit Function
End If
Do While FileLen(fileName) > FileLen(encryptFileName)
System.Windows.Forms.Application.DoEvents()
ReDim fileBytes(65535)
FileGet(inputFileNo, fileBytes)
Dim i As Long
For i = LBound(fileBytes) To UBound(fileBytes)
fileBytes(i) = fileBytes(i) Xor key
Next
FilePut(outputFileNo, fileBytes)
Loop
FileClose(outputFileNo)
FileClose(inputFileNo)
XOR_Encrypt = True
errHandler:
If Err.Number Then
MsgBox("加密过程中出错:" & Err.Description, vbCritical, "错误")
XOR_Encrypt = False
Resume Next
End If
End Function
以上是一个函数,在 FileGet(inputFileNo, fileBytes)处报错,错误为 偏移量和长度超出数组的界限,或者计数大于从索引到源集合结尾处的元素数量 求帮忙修正,或者给一个同样能够进行单文件加密的程序代码~
2014年08月05日 03点08分
1
On Error GoTo errHandler
Dim inputFileNo As Integer
Dim fileBytes() As Byte
Dim length As Long
XOR_Encrypt = False
Dim outputFileNo As Integer
inputFileNo = FreeFile()
FileOpen(inputFileNo, fileName, OpenMode.Binary)
outputFileNo = FreeFile()
FileOpen(outputFileNo, encryptFileName, OpenMode.Binary)
length = LOF(inputFileNo)
If length = 0 Then
MsgBox("退出加密:文件内容为空!", vbInformation, "提示")
Exit Function
End If
Do While FileLen(fileName) > FileLen(encryptFileName)
System.Windows.Forms.Application.DoEvents()
ReDim fileBytes(65535)
FileGet(inputFileNo, fileBytes)
Dim i As Long
For i = LBound(fileBytes) To UBound(fileBytes)
fileBytes(i) = fileBytes(i) Xor key
Next
FilePut(outputFileNo, fileBytes)
Loop
FileClose(outputFileNo)
FileClose(inputFileNo)
XOR_Encrypt = True
errHandler:
If Err.Number Then
MsgBox("加密过程中出错:" & Err.Description, vbCritical, "错误")
XOR_Encrypt = False
Resume Next
End If
End Function
以上是一个函数,在 FileGet(inputFileNo, fileBytes)处报错,错误为 偏移量和长度超出数组的界限,或者计数大于从索引到源集合结尾处的元素数量 求帮忙修正,或者给一个同样能够进行单文件加密的程序代码~