首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java PreparedStatement: HASHBYTES的绑定参数

Java PreparedStatement: HASHBYTES的绑定参数
EN

Stack Overflow用户
提问于 2016-04-26 19:06:55
回答 2查看 486关注 0票数 0

现在,我有一个准备好的陈述,这是可行的:

代码语言:javascript
复制
SELECT email, password
FROM Professor 
WHERE email = ? AND password = HASHBYTES('SHA1','" + password + "') 

p.setString(1, email);

但是,当我试图参数化由HASHBYTES加密的值(在本例中是变量“password”)时,会出现某种读取/类型/转换错误,不会返回结果。这是不起作用的代码:

代码语言:javascript
复制
SELECT email, password
FROM Professor 
WHERE email = ? AND password = HASHBYTES('SHA1', ?) 

p.setString(1, email);
p.setString(2, password);

我完全没有收到错误消息;结果集在rowCount属性中返回"-3“。我正在使用 Server

传递这样的“密码”占位符:“?”也不起作用。参数化查询的正确方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-09 03:22:11

使用您所指出的信息,并研究如何在Server中转换类型,我介绍了以下代码:

代码语言:javascript
复制
select email, password
  from Professor
 where email = ?
   and senha = hashbytes('sha1', convert(varchar, ?))

请确认它是否对你有效!

票数 1
EN

Stack Overflow用户

发布于 2016-04-26 19:58:01

看看这个SQL Server sha1 value in prepared statement gives a different value than hardcoded string

p.s以这种方式回答,因为我还不能发短信评论。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36873680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档