pwdencrypt函数的问题 select pwdcompare('testpassword',pwdencrypt('testpassword'),0)select pwdcompare('testpassword',pwdencrypt('Testpassword'),1) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 保存的时候这样:UPDATE T_PASSWORDSET PASSWORD = convert(varbinary(256), pwdencrypt(:ls_NewPass))WHERE USER_ID = :ls_Login ;比较的时候这样:select @result = pwdcompare(@password,password)from t_password where user_id = :user_id;其中@password是用户输入的密码。如果@result= 1,说明密码正确。 加密的结果是不同,但是不影响与明文值的比较。怎么比较?举个例子,用户的密码是11111,我利用pwdencrypt()函数加密后得到密码数据是0x010037513A55B6CD34DF14E6F9B161E0A894281B80A540B62B3BB6CD34DF14E6F9B161E0A894281B80A540B62B3B,我把这个密文数据保存到数据库对应的密码项,然后当用户登录时,我怎么来比较?用pwdcompare('11111',pwdencrypt('11111')来比较吗?这样没有意义啊,我是想跟我保存的数据来比较,有什么方法可以实现吗? 处理方式:用DES,3DES,MD5等方式加密后,密码存储在数据库中。用户验证的时候,再把用户输入的密码加密,直接和数据库加密后存储的字符比较。相等,允许登录,不相等,拒绝登录。注意:MD5是不可逆的。所以用户看到数据库中存储的字符串,也不知道他的用户密码是多少。 我有个问题请教:比如有个不法用户进入了数据库,把他知道的密码MD5后替换了原来的密码MD5值,是不是就做到了非法访问的目的?? lanyu_84(G) ,当然是啊lltp2002 () ,每次都要做比较的,使用pwdcompare函数进行比较,方法就是libin_ftsafe(子陌红尘:当libin告别ftsafe)所说的,而不是对输入的密码pwdencrypt后与数据库中保存的加密密码进行比较,因为pwdencrypt每次的值都是不一样的不建议使用pwdencrypt,万一平台移植就不好办 比较方法:DECLARE @OldPWD varchar(255) DECLARE @EncryptedPWD varbinary(255)SET @OldPWD = '11111'SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@OldPWD))SELECT pwdcompare(@OldPWD, @EncryptedPWD)SELECT pwdcompare('22222', @EncryptedPWD) SQL求重复 修改多个表客户姓名的触发器如何写 判断两个字段的值是否相等? 请问数据库收缩怎么用? sql server 中修改密码的问题 有关SQL查询里相同数据的取舍问题 我想在表里面设一个字段,这个字段等于每条记录的序列号!能帮我写一条sql 语句实现吗?我不想每次从表里面取出最大的序列后,再加1,然后 一个困惑的问题 sql server 中是否有象tnsping的东西 vfp的查询问题? 求救! 帮忙看看
UPDATE T_PASSWORD
SET PASSWORD = convert(varbinary(256), pwdencrypt(:ls_NewPass))
WHERE USER_ID = :ls_Login ;
比较的时候这样:
select @result = pwdcompare(@password,password)
from t_password
where user_id = :user_id;
其中@password是用户输入的密码。
如果@result= 1,说明密码正确。
怎么比较?举个例子,用户的密码是11111,我利用pwdencrypt()函数加密后得到密码数据是0x010037513A55B6CD34DF14E6F9B161E0A894281B80A540B62B3BB6CD34DF14E6F9B161E0A894281B80A540B62B3B,我把这个密文数据保存到数据库对应的密码项,然后当用户登录时,我怎么来比较?
用pwdcompare('11111',pwdencrypt('11111')来比较吗?这样没有意义啊,我是想跟我保存的数据来比较,有什么方法可以实现吗?
用户验证的时候,再把用户输入的密码加密,直接和数据库加密后存储的字符比较。
相等,允许登录,不相等,拒绝登录。注意:MD5是不可逆的。所以用户看到数据库中存储的字符串,也不知道他的用户密码是多少。
DECLARE @OldPWD varchar(255)
DECLARE @EncryptedPWD varbinary(255)
SET @OldPWD = '11111'
SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@OldPWD))
SELECT pwdcompare(@OldPWD, @EncryptedPWD)
SELECT pwdcompare('22222', @EncryptedPWD)