这两个函数是sql server内部使用的加密函数,微软未公布其用法。也无法找到相关文档。
根据网上查到,這兩個 Function 在 SQL 2000, 2005, 2008 都可以使用,只是我也發現了一些不同的 SQL Server 版本之間在使用這兩個 Function 時的小差異:
- 使用 PWDENCRYPT 時 SQL 2000 與 SQL 2005/2008 加密過後的 hash 長度不一樣!
- SQL 2005/2008 加密過的密碼在 SQL 2000 中無法使用 PWDCOMPARE 函數驗證密碼!
- SQL 2005 與 SQL 2008 基本上是相容的。
- SQL 2000 加密過的密碼雖然比較長,但在 SQL 2005/2008 中還是可以使用 PWDCOMPARE 函數驗證密碼!
补充一条。sql2008 pwdcompare区分打小写。而sql server 2000大小写不敏感。