sql server 里不知道sa用户的密码,有办法破解否

来源:百度知道 编辑:UC知道 时间:2024/07/05 06:48:03
不要重装sql server

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_GetPassword]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_GetPassword]
GO

/*--穷举法破解 SQL Server 用户密码

可以破解中文,特殊字符,字符+尾随空格的密码
为了方便显示特殊字符的密码,在显示结果中,显示了组成密码的ASCII

理论上可以破解任意位数的密码
条件是你的电脑配置足够,时间足够

*/

/*--调用示例

--测试特殊字符
declare @pwd sysname
set @pwd=char(0)+'a '
exec sp_password null,@pwd,'sa'
exec p_GetPassword

--测试带空格的密码
exec sp_password null,'a ','sa'
exec p_GetPassword

--测试中文
exec sp_password null,'我 ','sa'
exec p_GetPassword

--清除密码
exec sp_password null,null,'sa'
--*/
create proc p_GetPassword
@username sysname=null, --用户名,如果不指定,则列出所有用户
@pwdlen int=3 --密码破解的位数,默认只破解3位及以下的密码
as
--生成要破解的密码的用户表
selec