在VB下Access数据库密码的安全设置(2)
1970-01-01 08:00
Function GetString(hKey As Long, strPath As String, strValue As String)
Dim Ret
RegOpenKey hKey, strPath, Ret
GetString = RegQueryStringValue(Ret, strValue)
RegCloseKey Ret
End Function
Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As String) As String
Dim strString As String
RegQueryValueEx hKey, strValueName, 0, lValueType, ByVal 0, lDataBufSize
strBuf = String(lDataBufSize, Chr$(0))
RegQueryValueEx hKey, strValueName, 0, 0, ByVal strBuf, lDataBufSize
RegQueryStringValue = Left$(strBuf, InStr(1, strBuf, Chr$(0)) - 1)
Exit Function
2.2 在VB中对密码进行加密和解密 当然,为了保证密码的安全,除了考虑密码的存放方式外,另一方面就是对密码本身加密,得到一个加密的密码,将密码加密后存放起来就更安全了。对密码加密实际是将作为密码的字符从一种表现形式变为另一种表现形式的过程。其中一种方法是设置一个被称为“密钥”的字符或字符串,通过使用密钥对密码进行操作,将明码变成密码。在解密时再使用密钥对密码进行逆操作,密码就还原了。程序使用当前输入的密码作为密钥对输入的密码作加密操作,将加密后的密码存入文本文件PassWord.txt。程序中使用Ciphe过程和NumericPassword函数对密码进行加密操作,其中Cipher密钥。当然,密码加密后在使用时就要对它进行解密,它们的主要程序如下:
Private Function NumericPassword(ByVal Password As String) As Long
Dim Value As Long,Ch As Long, Shift1 As Long,Shift2 As Long
Dim I As Integer, Str_len As Integer
Str_len = Len(Password)
For I = 1 To Str_len
Ch = Asc(Mid$(Password, I, 1))
Value = Value Xor (Ch * 2 ^ Shift1)
Value = Value Xor (Ch * 2 ^ Shift2)
Shift1 = (Shift1 + 7) Mod 19
Shift2 = (Shift2 + 13) Mod 23
Next I
NumericPassword = Value
End Function
3 结束语
通过对Access数据库密码安全隐患进行分析,对密码的保存方式和密码本身的加密,防止数据库被下载和密码破解起到了一定的作用,道高一尺,魔高一丈,尽管人们想到种种办法来维护数据库安全,但是也总是不断发现漏洞。所以,为确保数据库的的安全,数据定期备份与恢复是必不可少的。
在VB下Access数据库密码的安全设置(2).doc
将本文的Word文档下载到电脑
下载失败或者文档不完整,请联系客服人员解决!