用的话就是 EnCodeTxt("字符串",55)Public Function EnCodeTxt(strSource As String, strPass As Integer) As String '加解密字符串 On Error GoTo ErrEnDeCode Dim x As Single Dim CHARNUM As Long, RANDOMINTEGER As Integer Dim SINGLECHAR As String * 1 Dim strTmp As String Dim MA As Integer MA = strPass If MA < 0 Then MA = MA * (-1) End If x = Rnd(-MA) For i = 1 To Len(strSource) Step 1 SINGLECHAR = Mid(strSource, i, 1) CHARNUM = Asc(SINGLECHAR) g: RANDOMINTEGER = Int(127 * Rnd) If RANDOMINTEGER < 30 Or RANDOMINTEGER > 100 Then GoTo g CHARNUM = CHARNUM Xor RANDOMINTEGER strTmp = strTmp & Chr(CHARNUM) Next i EnCodeTxt = strTmp Exit Function ErrEnDeCode: EnCodeTxt = "" MsgBox Err.Number & "\" & Err.Description End Function
不知道有没有BUG,回头我找找看
On Error GoTo ErrEnDeCode
Dim x As Single
Dim CHARNUM As Long, RANDOMINTEGER As Integer
Dim SINGLECHAR As String * 1
Dim strTmp As String
Dim MA As Integer
MA = strPass
If MA < 0 Then
MA = MA * (-1)
End If
x = Rnd(-MA)
For i = 1 To Len(strSource) Step 1
SINGLECHAR = Mid(strSource, i, 1)
CHARNUM = Asc(SINGLECHAR)
g: RANDOMINTEGER = Int(127 * Rnd)
If RANDOMINTEGER < 30 Or RANDOMINTEGER > 100 Then GoTo g
CHARNUM = CHARNUM Xor RANDOMINTEGER
strTmp = strTmp & Chr(CHARNUM)
Next i
EnCodeTxt = strTmp
Exit Function
ErrEnDeCode:
EnCodeTxt = ""
MsgBox Err.Number & "\" & Err.Description
End Function
但是如果是几百上G的文件就完全没必要了。不知道你为何考虑把文件放入数据库,
但如果只是为了数据安全,大可以直接加密文件,如果是考虑SQL的网络下载数据
,还不如直接使用IIS的WEB下载或FTP下载,VB里直接有控件可以做这种事。因为
通过数据库下在文件速度实在不行,已前我的一个同事做过一个自动升级程序,就
是把文件放入SQL中,我们测试了一下,当5台电脑同时从数据库中读取一个25MB的
文件时,竟然有两台电脑的像死机一样慢。我也做过一个自动升级程序,但是是基
于完全的网络技术做的,测试了一下,在20台电脑同时升级50MB文件包的情况下工
作流畅,最起码可以有进度条看到屏幕不会那么烦恼和心急。
所以我建议无论从安全角度或是网络传输角度,文件的管理还是不用数据库的好。