|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果某个数据列里包含许多重复的值,就算为它建立了索引也不会有很好的效果。比如说,如果某个数据列里包含的净是些诸如“0/1”或“Y/N”等值,就没有必要为它创建一个索引。存储历程|破解ifexists(select*fromdbo.sysobjectswhereid=object_id(N[dbo].[p_GetPassword])andOBJECTPROPERTY(id,NIsProcedure)=1)
dropprocedure[dbo].[p_GetPassword]
GO/*--穷举法破解SQLServer用户暗码
能够破解中文,特别字符,字符+跟随空格的暗码
为了便利显现特别字符的暗码,在显现了局中,显现了构成暗码的ASCII
实际上能够破解恣意位数的暗码
前提是你的电脑设置充足,工夫充足
--邹建2004.08(援用请保存此信息)--*/
/*--挪用示例
--测试特别字符
declare@pwdsysname
set@pwd=char(0)+a
execsp_passwordnull,@pwd,sa
execp_GetPassword
--测试带空格的暗码
execsp_passwordnull,a,sa
execp_GetPassword
--测试中文
execsp_passwordnull,我,sa
execp_GetPassword
--扫除暗码
execsp_passwordnull,null,sa
--*/
createprocp_GetPassword
@usernamesysname=null,--用户名,假如不指定,则列出一切用户
@pwdlenint=3--暗码破解的位数,默许只破解3位及以下的暗码
as
--天生要破解的暗码的用户表
selectname,password
,type=casewhenxstatus&2048=2048then1else0end
,jm=casewhenpasswordisnullordatalength(password)<46
then1else0end
,pwdstr=casewhendatalength(password)<46
thencast(passwordassysname)
elsecast(assysname)end
,pwd=cast(asvarchar(8000))
into#pwd
frommaster.dbo.sysxloginsa
wheresrvidisnull
andname=isnull(@username,name)
--天生一时表
selecttop255id=identity(int,0,1)into#tfromsysobjectsa,sysobjectsb
altertable#taddconstraintPK_#tprimarykey(id)
--清算不必要的字符
ifnotexists(select1from#pwdwheretype=1)
deletefrom#twhereidbetween65and90oridbetween129and254
--暗码破解处置
declare@lint
declare@s1varchar(8000),@s2varchar(8000),@s3varchar(8000),@s4varchar(8000)
--破解1位暗码
select@l=0
,@s1=id=a.id
,@s2=#ta
,@s3=char(b.id)
,@s4=cast(b.idasvarchar)
exec(
updatepwdsetjm=1,pwdstr=+@s3+
,pwd=+@s4+
from#pwdpwd,#tb
wherepwd.jm=0
andpwdcompare(+@s3+,pwd.password,pwd.type)=1
)
--破解凌驾2位的暗码
whileexists(select1from#pwdwherejm=0and@l<@pwdlen-1)
begin
select@l=@l+1
,@s1=@s1+,id+cast(@lasvarchar)
+=+char(@l/26+97)+char(@l%26+97)+.id
,@s2=@s2+,#t+char(@l/26+97)+char(@l%26+97)
,@s3=@s3++char(b.id+cast(@lasvarchar)+)
,@s4=@s4++,+cast(b.id+cast(@lasvarchar)+asvarchar)
exec(
select+@s1+into#ttfrom+@s2+
updatepwdsetjm=1,pwdstr=+@s3+
,pwd=+@s4+
from#pwdpwd,#ttb
wherepwd.jm=0
andpwdcompare(+@s3+,pwd.password,pwd.type)=1
)
end
--显现破解的暗码
select用户名=name,暗码=pwdstr,暗码ASCII=pwd
from#pwd
go
使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性 |
|