SQL 加密方法(MD5,SHA1,MD2,MD3,MD4等)
常用于找回密码时,系统生成随机密码的情况.
1-- =============================================
2-- Author: 飘渺峰
3-- Create date: 2009-03-30
4-- Description: 获取指定长度的随机字符串
5-- =============================================
6ALTER 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 */
16AS
17BEGIN
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;
72END
73/*
74转载请说明出处,谢谢
75*/
2-- Author: 飘渺峰
3-- Create date: 2009-03-30
4-- Description: 获取指定长度的随机字符串
5-- =============================================
6ALTER 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 */
16AS
17BEGIN
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;
72END
73/*
74转载请说明出处,谢谢
75*/