未公开的SQL Server口令的加密函数
如果你对MSSQL中的用户信息很感兴趣,那么你可能会发现`master.dbo.sysxlogins`表中存放着用户的口令信息。你会发现`password`字段如果非空的话,里面存储的是一串难以理解的二进制代码。那么,这些口令是如何加密的呢?
其实,只要我们仔细观察一下`master.dbo.sp_addlogin`过程,就能找到答案。MSSQL的存储过程都是公开可见的,这一特点让人不禁赞叹。
那么,这个过程是如何进行加密操作的呢?注意这里:`select @passwd = pwdencrypt(@passwd)`,这一行代码将`@passwd`进行了加密。我们也来尝试一下这个操作。
我们声明两个变量:一个用于存放明文的口令(`@ClearPWD`),另一个用于存放加密后的口令(`@EncryptedPWD`)。然后,我们给`@ClearPWD`赋值为'test',接着将`@ClearPWD`进行加密,并将结果存入`@EncryptedPWD`。我们输出加密后的口令。
口令加密通常是单向的,我们可以通过加密后的密文来进行比较验证。
继续其他与用户相关的存储过程,我们可以在`master.dbo.sp_password`中找到口令比较的内容。其中,`pwdpare`函数用于比较旧口令、新口令以及状态掩码。
状态掩码(`xstatus`)在这里我们暂时可以忽略,通常在使用时我们将其设为0。
现在,我们可以使用这两个函数来加密自己的密码并进行比较验证了。我们可以声明一个明文口令和一个加密后的口令,然后使用`pwdpare`函数进行比较,看看是否匹配。这样,我们就可以用自己的密码进行加密并验证了。
MSSQL的口令加密机制相对透明,我们可以通过其存储过程和函数来理解和使用它。这种机制确保了用户口令的安全性,同时也方便了我们进行密码管理和验证。
编程语言
- 未公开的SQL Server口令的加密函数
- 通过备份记录获取数据库的增长情况
- vue加载完成后的回调函数方法
- jsp 页面上图片分行输出小技巧
- 如何在读取Excel文件时创建列表的下拉菜单?
- nodejs socket服务端和客户端简单通信功能
- ajax使用不同namespace的action的方法
- JS点击链接后慢慢展开隐藏着图片的方法
- vue单页应用加百度统计代码(亲测有效)
- 如何防止IE缓存jsp文件
- ThinkPHP实现二级循环读取的方法
- PHP使用Session遇到的一个Permission denied Notice解决办
- 使用VS开发 Node.js指南
- windows服务器中检测PHP SSL是否开启以及开启SSL的方
- 基于jQuery实现交互体验社会化分享代码附源码下
- 基于javascript实现窗口抖动效果