SQL 加密方法(MD5,SHA1,MD2,MD3,MD4等)
常用于找回密码时,系统生成随机密码的情况.
1
-- =============================================
2
-- Author: 飘渺峰
3
-- Create date: 2009-03-30
4
-- Description: 获取指定长度的随机字符串
5
-- =============================================
6
ALTER PROCEDURE Proc_GetRankString
7
@iLen INT,
8
@result VARCHAR(MAX) OUTPUT
9
10
/*
11
DECLARE @temp VARCHAR(50)
12
SET @temp = '';
13
EXEC PROC_GETRankString 15, @temp OUTPUT
14
SELECT @temp
15
*/
16
AS
17
BEGIN
18
SET @result = '';
19
DECLARE @STR VARCHAR(MAX), @INT INT, @iCount INT
20
SET @STR = ''; SET @INT = 0; SET @iCount = 0;
21
IF @ilen <= 0 SET @ilen = 8;
22
IF @ilen >=30 SET @ilen = 30;
23
24
WHILE @ilen > @iCount
25
BEGIN
26
SET @INT = CAST(CEILING(RAND() * 38) AS INT)
27
SET @STR = CASE
28
WHEN @INT = 1 THEN @STR + 'A'
29
WHEN @INT = 2 THEN @STR + 'B'
30
WHEN @INT = 3 THEN @STR + 'C'
31
WHEN @INT = 4 THEN @STR + 'D'
32
WHEN @INT = 5 THEN @STR + 'E'
33
WHEN @INT = 6 THEN @STR + 'F'
34
WHEN @INT = 7 THEN @STR + 'G'
35
WHEN @INT = 8 THEN @STR + 'H'
36
--WHEN @INT = 9 THEN @STR + 'I'
37
WHEN @INT = 10 THEN @STR + 'J'
38
WHEN @INT = 11 THEN @STR + 'K'
39
WHEN @INT = 12 THEN @STR + 'L'
40
WHEN @INT = 13 THEN @STR + 'M'
41
WHEN @INT = 14 THEN @STR + 'N'
42
WHEN @INT = 15 THEN @STR + 'O'
43
WHEN @INT = 16 THEN @STR + 'P'
44
WHEN @INT = 17 THEN @STR + 'Q'
45
WHEN @INT = 18 THEN @STR + 'R'
46
WHEN @INT = 19 THEN @STR + 'S'
47
WHEN @INT = 20 THEN @STR + 'T'
48
WHEN @INT = 21 THEN @STR + 'U'
49
WHEN @INT = 22 THEN @STR + 'V'
50
WHEN @INT = 23 THEN @STR + 'W'
51
WHEN @INT = 24 THEN @STR + 'X'
52
WHEN @INT = 25 THEN @STR + 'Y'
53
WHEN @INT = 26 THEN @STR + 'Z'
54
WHEN @INT = 27 THEN @STR + '1'
55
WHEN @INT = 28 THEN @STR + '2'
56
WHEN @INT = 29 THEN @STR + '3'
57
WHEN @INT = 30 THEN @STR + '4'
58
WHEN @INT = 31 THEN @STR + '5'
59
WHEN @INT = 32 THEN @STR + '6'
60
WHEN @INT = 33 THEN @STR + '7'
61
WHEN @INT = 34 THEN @STR + '8'
62
WHEN @INT = 35 THEN @STR + '9'
63
WHEN @INT = 36 THEN @STR + '_'
64
WHEN @INT = 37 THEN @STR + '%'
65
WHEN @INT = 38 THEN @STR + '$'
66
ELSE
67
@STR + 'A'
68
END
69
SET @iCount = @iCount + 1;
70
END
71
SET @result = @STR;
72
END
73
/*
74
转载请说明出处,谢谢
75
*/
-- =============================================2
-- Author: 飘渺峰3
-- Create date: 2009-03-304
-- Description: 获取指定长度的随机字符串5
-- =============================================6
ALTER PROCEDURE Proc_GetRankString 7
@iLen INT,8
@result VARCHAR(MAX) OUTPUT9
10
/*11
DECLARE @temp VARCHAR(50)12
SET @temp = '';13
EXEC PROC_GETRankString 15, @temp OUTPUT14
SELECT @temp15
*/16
AS17
BEGIN18
SET @result = '';19
DECLARE @STR VARCHAR(MAX), @INT INT, @iCount INT20
SET @STR = ''; SET @INT = 0; SET @iCount = 0;21
IF @ilen <= 0 SET @ilen = 8;22
IF @ilen >=30 SET @ilen = 30;23

24
WHILE @ilen > @iCount25
BEGIN26
SET @INT = CAST(CEILING(RAND() * 38) AS INT)27
SET @STR = CASE28
WHEN @INT = 1 THEN @STR + 'A'29
WHEN @INT = 2 THEN @STR + 'B'30
WHEN @INT = 3 THEN @STR + 'C'31
WHEN @INT = 4 THEN @STR + 'D'32
WHEN @INT = 5 THEN @STR + 'E'33
WHEN @INT = 6 THEN @STR + 'F'34
WHEN @INT = 7 THEN @STR + 'G'35
WHEN @INT = 8 THEN @STR + 'H'36
--WHEN @INT = 9 THEN @STR + 'I'37
WHEN @INT = 10 THEN @STR + 'J'38
WHEN @INT = 11 THEN @STR + 'K'39
WHEN @INT = 12 THEN @STR + 'L'40
WHEN @INT = 13 THEN @STR + 'M'41
WHEN @INT = 14 THEN @STR + 'N'42
WHEN @INT = 15 THEN @STR + 'O'43
WHEN @INT = 16 THEN @STR + 'P'44
WHEN @INT = 17 THEN @STR + 'Q'45
WHEN @INT = 18 THEN @STR + 'R'46
WHEN @INT = 19 THEN @STR + 'S'47
WHEN @INT = 20 THEN @STR + 'T'48
WHEN @INT = 21 THEN @STR + 'U'49
WHEN @INT = 22 THEN @STR + 'V'50
WHEN @INT = 23 THEN @STR + 'W'51
WHEN @INT = 24 THEN @STR + 'X'52
WHEN @INT = 25 THEN @STR + 'Y'53
WHEN @INT = 26 THEN @STR + 'Z'54
WHEN @INT = 27 THEN @STR + '1'55
WHEN @INT = 28 THEN @STR + '2'56
WHEN @INT = 29 THEN @STR + '3'57
WHEN @INT = 30 THEN @STR + '4'58
WHEN @INT = 31 THEN @STR + '5'59
WHEN @INT = 32 THEN @STR + '6'60
WHEN @INT = 33 THEN @STR + '7'61
WHEN @INT = 34 THEN @STR + '8'62
WHEN @INT = 35 THEN @STR + '9'63
WHEN @INT = 36 THEN @STR + '_'64
WHEN @INT = 37 THEN @STR + '%'65
WHEN @INT = 38 THEN @STR + '$'66
ELSE67
@STR + 'A'68
END 69
SET @iCount = @iCount + 1; 70
END71
SET @result = @STR;72
END73
/*74
转载请说明出处,谢谢75
*/

浙公网安备 33010602011771号