• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    未公开的SQL Server口令的加密函数
    如果对MSSQL的用户信息有兴趣的,可能会发现master.dbo.sysxlogins里面存放着用户的口令,可是呢,password字段如果不是null就是一堆看不懂的binary,这个口令是怎么加密的呢?
      其实只要仔细看看master.dbo.sp_addlogin就知道了,MSSQL的sp都可以看到代码,真是不错。
      让我们来看看它是怎么做的,注意这一行select @passwd = pwdencrypt(@passwd),这个时后@passwd就被加密了,让我们也来试一下
      DECLARE @ClearPWD varchar(255) 
      DECLARE @EncryptedPWD varbinary(255)
      SELECT @ClearPWD = 'test'
      SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD))
      SELECT @EncryptedPWD
      看上去不错,确实被加密了,可是我怎么还原呢?
      
      口令加密都是单向的,用加密后的密文来比较就可以了。
      继续看看其它用户相关的sp,可以发现master.dbo.sp_password里面有口令比较的内容。
      pwdcompare(@old, password, (CASE WHEN xstatus2048 = 2048 THEN 1 ELSE 0 END))
      不用去理会xstatus,这是一个状态掩码,一般我们用的时候就直接用0就可以了
      DECLARE @ClearPWD varchar(255) 
      DECLARE @EncryptedPWD varbinary(255)
      SELECT @ClearPWD = 'test'
      SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD))
      SELECT pwdcompare(@ClearPWD, @EncryptedPWD, 0)
      SELECT pwdcompare('ErrorPassword', @EncryptedPWD, 0)
      这样我们就可以使用这两个函数来加密自己的密码了
    上一篇:SQL SERVER的数据类型
    下一篇:精妙的SQL语句
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    未公开的SQL Server口令的加密函数 未,公开,的,SQL,Server,口令,