全部,
提前抱歉 - 我是以下大多数主题(SQL、ASP)的新手。反正...
我有一个非常简单的网络应用程序,它要求用户使用用户名和密码登录。
前端创建密码的加盐 SHA1 哈希,并将其(连同用户名)发布到 ASP 页面。
该 ASP 页面获取数据,调用 SQL Server 数据库中的存储过程,并传递用户名和散列密码;存储过程将信息写入“用户”表。
表中密码列的类型是 varbinary。
据我所知,当 ASP 获得密码 (password = Request.Form("password")) 时,它是一个字符串。
如果我以这种方式创建查询,我可以“欺骗”SQL Server 将其作为 varbinary 处理:
query = "EXEC sp_save_user @username='" & 用户名 & "', @password=0x" & 密码
IOW - 我在密码字符串前面加上“0x”。
但是,我读过使用参数化查询是一种更好的做法:
例如: SET objParam = objCommand.CreateParameter("@password",204, 1, 40, 密码)
但是,这会失败,因为参数应该是二进制 (204),但密码是字符串。
那么,如何在 ASP 中将“4a5e6a8d521ed487b81c91e131cf27e8dae9b783”之类的字符串转换为二进制文件?
提前谢谢了!