繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> DotNet中用到的加密算法总结 1

DotNet中用到的加密算法总结 1

2007-10-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:1public class CryptUtil 2 { 3 public static string DecryptString(string input) 4 { 5 if (input.Equals(string.Empty)) 6 { 7 return input; 8 ...
关键字:算法 加密 DotNet

1public class CryptUtil

2 {

3 public static string DecryptString(string input)

4 {

5 if (input.Equals(string.Empty))

6 {

7 return input;

8 }

9

10 byte[] byKey = {0x63, 0x68, 0x65, 0x6E, 0x79, 0x75, 0x61, 0x6E};

11 byte[] IV = {0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10};

12 byte[] inputByteArray = new Byte[input.Length];

13 DESCryptoServiceProvider des = new DESCryptoServiceProvider();

14 inputByteArray = Convert.FromBase64String(input);

15 MemoryStream ms = new MemoryStream();

16 CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);

17 cs.Write(inputByteArray, 0, inputByteArray.Length);

18 cs.FlushFinalBlock();

19 Encoding encoding = new UTF8Encoding();

20 return encoding.GetString(ms.ToArray());

21 }

22

23 public static string EncryptString(string input)

24 {

25 if (input.Equals(string.Empty))

26 {

27 return input;

28 }

29

30 byte[] byKey = {0x63, 0x68, 0x65, 0x6E, 0x79, 0x75, 0x61, 0x6E};

31 byte[] IV = {0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10};

32 DESCryptoServiceProvider des = new DESCryptoServiceProvider();

33 byte[] inputByteArray = Encoding.UTF8.GetBytes(input);

34 MemoryStream ms = new MemoryStream();

35 CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write);

36 cs.Write(inputByteArray, 0, inputByteArray.Length);

37 cs.FlushFinalBlock();

38 return Convert.ToBase64String(ms.ToArray());

39 }

40 /**////

41 /// DES + Base64 加密

42 ///

43 /// 明文字符串

44 /// 已加密字符串

45 public static string DesBase64Encrypt(string input)

46 {

47 System.Security.Cryptography.DES des = System.Security.Cryptography.DES.Create();

48 des.Mode = System.Security.Cryptography.CipherMode.ECB;

49 ICryptoTransform ct;

50 MemoryStream ms;

51 CryptoStream cs;

52 byte[] byt;

53 byte[] Key = new byte[8]{56,50,55,56,56,55,49,49};

54 byte[] IV = new byte[8]{0,0,0,0,0,0,0,0};

55

56 ct = des.CreateEncryptor(Key, IV);

57

58 byt = Encoding.GetEncoding("GB2312").GetBytes(input); //根据 GB2312 编码对字符串处理,转换成 byte 数组

59

60 ms = new MemoryStream();

61 cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);

62 cs.Write(byt, 0, byt.Length);

63 cs.FlushFinalBlock();

64

65 cs.Close();

66

67 byte[] answer = ms.ToArray();

68 for(int j=0;j

69 {

70 Console.Write(answer[j].ToString()+ " ");

71 }

72 Console.WriteLine();

73 return Convert.ToBase64String(ms.ToArray()); // 将加密的 byte 数组依照 Base64 编码转换成字符串

74 }

75

76 /**////

77 /// DES + Base64 解密

78 ///

79 /// 密文字符串

80 /// 解密字符串

81 public static string DesBase64Decrypt(string input)

82 {

83 System.Security.Cryptography.DES des = System.Security.Cryptography.DES.Create();

84 des.Mode = System.Security.Cryptography.CipherMode.ECB;

85 ICryptoTransform ct;

86 MemoryStream ms;

87 CryptoStream cs;

88 byte[] byt;

89 byte[] Key = new byte[8]{56,50,55,56,56,55,49,49};

90 byte[] IV = new byte[8]{0,0,0,0,0,0,0,0};

91

92 ct = des.CreateDecryptor(Key, IV);

93 byt = Convert.FromBase64String(input); // 将 密文 以 Base64 编码转换成 byte 数组

94

95 ms = new MemoryStream();

96 cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);

97 cs.Write(byt, 0, byt.Length);

98 cs.FlushFinalBlock();

99

100 cs.Close();

101

102 return Encoding.GetEncoding("GB2312").GetString(ms.ToArray()); // 将 明文 以 GB2312 编码转换成字符串

103 }

104

105

106

责任编辑:admin
相关文章