From 24d4095c758347fd6ad42eef4842c535a0e07062 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E5=B1=95=E9=B9=8F?= Date: Sat, 8 Feb 2025 12:27:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BSERP2-3-E3 用户密码解密脚本(1).sql | 34 +++++++++++++++++ sm_user密码破解.sql | 58 +++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 BSERP2-3-E3 用户密码解密脚本(1).sql create mode 100644 sm_user密码破解.sql diff --git a/BSERP2-3-E3 用户密码解密脚本(1).sql b/BSERP2-3-E3 用户密码解密脚本(1).sql new file mode 100644 index 0000000..1374c7d --- /dev/null +++ b/BSERP2-3-E3 用户密码解密脚本(1).sql @@ -0,0 +1,34 @@ +---BSERP2/3/E3 û +if exists(select 1 from sysobjects where name='fn_bsuser_pwdjm' and xtype='fn') +drop function fn_bsuser_pwdjm +go + +create function fn_bsuser_pwdjm(@pwd varchar(200)) +---BSERP2/3/E3 û +returns varchar(200) +as +begin + declare @Y varchar(200)='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890', + @J varchar(200)='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM9147038562', + @i int=0, + @num int, + @result varchar(200)='' + +while @i0 + set @result = @result+substring(@Y,charindex(substring(@pwd,@i+1,1),@J),1) + else + set @result = @result+substring(@pwd,@i+1,1) + + set @i+=1 + end +return(@result) +end + +go + +select userid,name,dbo.fn_bsuser_pwdjm(PASSWORD) from bsuser + + diff --git a/sm_user密码破解.sql b/sm_user密码破解.sql new file mode 100644 index 0000000..36db287 --- /dev/null +++ b/sm_user密码破解.sql @@ -0,0 +1,58 @@ +use [BS3000+_SYSTEM] + +GO +IF EXISTS (SELECT 1 FROM SYS.objects WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[fn_sm_user]') AND TYPE IN (N'FN', N'IF', N'TF', N'FS', N'FT')) +DROP FUNCTION fn_sm_user +GO + +create function fn_sm_user(@psw varchar(100)) +returns varchar(50) +as +begin + declare @result varchar(50), -- + @cout int, --ÿ3λһ + @psw_new varchar(100), --Կ + @num int --ȡ3λ + + set @result = '' + set @psw = REPLACE(@psw,'/U','') + set @psw_new = REPLACE(@psw,'+','') + set @cout = LEN(@psw)/3 + + if @cout=0 + begin + set @result = '' + end + else + begin + WHILE LEN(@psw_new)>0 + begin + select @num = cast(SUBSTRING(@psw_new,1,3) as int) + begin + IF @num<126 + begin + select @num=@num - 111 + end + else + begin + while(@num>=126) + begin + select @num=@num - 111 + end + end + select @result=@result + cast(CHAR(@num) as CHAR(1)) + end + select @psw_new = STUFF(@psw_new,1,3,'') + + end + end + +return (@result) +end + + + + +go + +select vusercode,vusername,dbo.fn_sm_user(vpassword) from sm_user