2

在 Sybase Sqlanywhere 中,系统用户存储在 sys.sysuser 中。

这是表中的示例行,用于用户“dba”,密码为“sql”。

user_id 1
object_id 175
user_name 'DBA'
password 0x013819f1b5d5a9fd1ba98e5b999239277b6296bee4bc28653802cd103d50fa76141aef7500
login_policy_id 173
expire_password_on_login_policy_id 0
password_creation_time '2012-02-23 11:24:32.000'
failed_login_attempts 0
last_login_time '2012-06-27 17:33:00.000'

我想知道密码是如何散列的,或者是否有人知道可以调用以在 Sqlanywhere 中验证用户名密码组合的过程或函数。

4

1 回答 1

3

SQL Anywhere 中的密码使用 SHA-256 算法进行哈希处理,但执行此操作的确切方法尚未公布。在 16.0 或更高版本中,您可以使用sa_verify_password()存储过程来验证当前用户的密码。

如果要验证其他用户的密码,或者如果您使用的是 v16 之前的服务器,验证密码的唯一方法是尝试使用该密码进行连接。

免责声明:我在 Sybase 的 SQL Anywhere 工程部门工作。

于 2012-07-12T12:25:16.083 回答