标题: [未解决] [其他] ACCESS加密 (查看:542 回复:2)
  [未解决] 本主题悬赏 MST币 10 点  
gzxchen
学徒网管




UID 557559
精华 0
积分 13
帖子 320
MST币 69 点    
BST币 13 点    赚取
阅读权限 60
注册 2007-8-8
状态 离线
 
[ 使用道具 ]  
发表于 2008-2-18 10:41  [ 资料 ]  [ 博客 ]  [ 短消息 ]  [ 加为好友
爱琴思邮件系统iGENUS V5.0
ACCESS加密
本帖发表在我是网管论坛,帖子地址:http://bbs.54master.com/231770,1,1
以前,我曾对ACCESS中加密问题向大家请过教,现再对原例子的问题请教。密码函数在网上下载,代码如下:
Public Function Encrypt(ByVal strSource As String, ByVal Key1 As Byte, _
ByVal Key2 As Integer) As String
Dim bLowData As Byte
Dim bHigData As Byte
Dim i As Integer
Dim strEncrypt As String
Dim strChar As String
For i = 1 To Len(strSource)
'从待加(解)密字符串中取出一个字符
strChar = Mid(strSource, i, 1)
' 取字符的低字节和Key1进行异或运算
bLowData = AscB(MidB(strChar, 1, 1)) Xor Key1
'取字符的高字节和K2进行异或运算
bHigData = AscB(MidB(strChar, 2, 1)) Xor Key2
'将运算后的数据合成新的字符
strEncrypt = strEncrypt & ChrB(bLowData) & ChrB(bHigData)
Next
Encrypt = strEncrypt
End Function


在原例子的修改密码窗体中(例子见本站“数据库技术”版块的贴)
Private Sub confirm_Click()
  If CurrentProject.AllForms("background").IsLoaded Then
    If IsNull(Password) Then
      MsgBox "请输入原密码...", vbExclamation + vbOKOnly, "系统提示"
      Me.Password.SetFocus
    ElseIf Encrypt(DLookup("Password", "UserList", "Username='" & UserName & "'"), 123, 33) <> Me.Password Then
      MsgBox "您输入的原密码不正确,请重新输入...", vbExclamation + vbOKOnly, "系统提示"
      Me.Password.SetFocus
    ElseIf IsNull(Password2) Then
      MsgBox "请输入新密码...", vbExclamation + vbOKOnly, "系统提示"
      Me.Password2.SetFocus
    ElseIf IsNull(Password3) Then
      MsgBox "请输入确认密码...", vbExclamation + vbOKOnly, "系统提示"
      Me.Password3.SetFocus
    ElseIf Me.Password3 <> Me.Password2 Then
      MsgBox "您输入的确认密码和新密码不一致,请重新输入...", vbExclamation + vbOKOnly, "系统提示"
      Me.Password3.SetFocus
    Else
      Me.Password4 = Encrypt([Password3], 123, 33)
      DoCmd.SetWarnings False
      DoCmd.RunSQL "UPDATE UserList SET UserList.[Password] = [Password4] WHERE ((Username=Forms![RC]![Username]));"
      DoCmd.SetWarnings True
      MsgBox "密码修改成功,请牢记!重新登录时用新密码!", vbExclamation + vbOKOnly, "系统提示"
      DoCmd.Close
    End If

如果我在修改密码时输入8位由数字及英文字符组成的密码,但在表中所显示出来的符号只有6位,是什么原因呢?在是述函数中,最好只能输入6位数的密码吗?
   盼大家指教。

[ 点这里复制网址,推荐给你QQ/MSN上的好友们! ]
本站声明:以上内容由网友 gzxchen 提供,与54master立场无关!
[ 顶部 ]
gzxchen
学徒网管




UID 557559
精华 0
积分 13
帖子 320
MST币 69 点    
BST币 13 点    赚取
阅读权限 60
注册 2007-8-8
状态 离线
 
[ 使用道具 ]  
发表于 2008-2-18 11:21  [ 资料 ]  [ 博客 ]  [ 短消息 ]  [ 加为好友
另,原例子的文件名叫“加密登录”

本站声明:以上内容由网友 gzxchen 提供,与54master立场无关!
[ 顶部 ]
gzxchen
学徒网管




UID 557559
精华 0
积分 13
帖子 320
MST币 69 点    
BST币 13 点    赚取
阅读权限 60
注册 2007-8-8
状态 离线
 
[ 使用道具 ]  
发表于 2008-2-21 09:26  [ 资料 ]  [ 博客 ]  [ 短消息 ]  [ 加为好友
现我将例子上传,请大家帮忙![attach]88599[/attach]



 附件: 您所在的用户组无法下载或查看附件
本站声明:以上内容由网友 gzxchen 提供,与54master立场无关!
[ 顶部 ]
  
 



当前时区 GMT+8, 现在时间是 2008-9-8 06:36

Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.041337 second(s), 12 queries , Gzip enabled

清除 Cookies - 关于我是网管 - 联系我是网管 - 广告服务 - 诚聘版主 - 无图版 - WAP -