设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 6399|回复: 15
打印 上一主题 下一主题

急救密文啊!

[复制链接]
跳转到指定楼层
1#
发表于 2003-3-11 00:53:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

用代码A、代码B写入同样的文字“ABC”,加RC4("ABC")打开表结果不一样,代码B有误,
但两段代码不加RC4写入,结果都一样,是明码“ABC”,请教存储过程加了RC4为什么会出错,
如何解决?
谢谢!

代码A
Dim RST As New ADODB.Recordset, CNN As New ADODB.Connection
  Set CNN = CurrentProject.Connection
  RST.Open "SELECT * FROM Sb_员工基本资料 WHERE 姓名='" & "陈芬芬" & "' ", CNN, adOpenStatic, adLockPessimistic
  RST!密码 = RC4("ABC")
  RST.Update
  RST.Close
  Set RST = Nothing
END SUB

代码B
Sub AddPass2()
  DoCmd.RunSQL ("exec Tb_更改密码 " & "'陈芬芬', '" & RC4("ABC") & "'")
End Sub

'存储过程 Tb_更改密码
UPDATE dbo.Sb_员工基本资料
SET 密码效期 = GETDATE() + 30, 密码 = @新密码
WHERE (姓名 = @姓名)


Option Compare Database
Private Const conKey = "E54YBYB5eytn7kVSr6ub56uyAV%^&^$^%$$*YUGhj"

Public Function RC4(strInp As String) As String

Dim s(0 To 255) As Byte, K(0 To 255) As Byte, I As Long
Dim j As Long, temp As Byte, Y As Byte, t As Long, X As Long
Dim Outp As String


For I = 0 To 255
  s(I) = I
Next

j = 1
For I = 0 To 255
  If j > Len(conKey) Then j = 1
  K(I) = Asc(Mid(conKey, j, 1))
  j = j + 1
Next I

j = 0
For I = 0 To 255
  j = (j + s(I) + K(I)) Mod 256
  temp = s(I)
  s(I) = s(j)
  s(j) = temp
Next I

I = 0
j = 0
For X = 1 To Len(strInp)
  I = (I + 1) Mod 256
  j = (j + s(I)) Mod 256
  temp = s(I)
  s(I) = s(j)
  s(j) = temp
  t = (s(I) + (s(j) Mod 256)) Mod 256
  Y = s(t)
  
  Outp = Outp & ChrW(AscW(Mid(strInp, X, 1)) Xor Y)
Next
RC4 = Outp
End Function



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
16#
发表于 2006-10-26 01:32:00 | 只看该作者
让我想想!

点击这里给我发消息

15#
发表于 2006-10-22 18:40:00 | 只看该作者
好老的贴子哟。还被翻出来了。哈哈

点击这里给我发消息

14#
发表于 2006-10-22 18:38:00 | 只看该作者
呵呵,有意思。

CG1的意思是:用ADO的Command来执行存储过程,则可保正确存储。

我想其中的主要原因是RC4会在字符串中产生诸如空格、逗号类的特殊字符,呵呵。
13#
发表于 2006-10-22 18:07:00 | 只看该作者
看看,学习学习
12#
 楼主| 发表于 2003-3-31 22:37:00 | 只看该作者

存储过程

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
11#
 楼主| 发表于 2003-3-31 21:18:00 | 只看该作者

无权限

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
10#
 楼主| 发表于 2003-3-31 21:11:00 | 只看该作者

联不上

与昨天一样的错误!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
9#
发表于 2003-3-31 06:24:00 | 只看该作者
up
[此贴子已经被作者于2003-3-31 19:21:33编辑过]

8#
发表于 2003-3-31 06:18:00 | 只看该作者
XXX网站,抄袭代码如下:(哈哈)

adp 代码如下:
----------------------------------------
Public Function DoProcedure()
    Dim cmdByRoyalty As ADODB.Command
    Dim prmByRoyalty As ADODB.Parameter
    Dim rstByRoyalty As ADODB.Recordset
    Dim intRoyalty As String
    Set cmdByRoyalty = New ADODB.Command
    cmdByRoyalty.CommandText = "存储过程名"
    cmdByRoyalty.CommandType = adCmdStoredProc
    intRoyalty = Trim(InputBox("输入参数:"))
        '你可以直接写参数,不用调用 input
    Set prmByRoyalty = cmdByRoyalty.CreateParameter("aab", adChar, adParamInput, 255)
    cmdByRoyalty.Parameters.Append prmByRoyalty
    prmByRoyalty.value = intRoyalty
    Set cmdByRoyalty.ActiveConnection = CurrentProject.Connection
    Set rstByRoyalty = cmdByRoyalty.Execute
End Function
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-11 08:56 , Processed in 0.087351 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表