在ASP.NET中实现DES加密与解密MD5加密功能介绍


本文摘自PHP中文网,作者巴扎黑,侵删。

这篇文章主要介绍了ASP.NET中DES加密与解密MD5加密帮助类的实例代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

public class TrialHelper

  {    //默认密钥向量

    private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };

    /// <summary>

    /// DES加密字符串

    /// </summary>

    /// <param name="encryptString">待加密的字符串</param>

    /// <param name="encryptKey">加密密钥,要求为8位</param>

    /// <returns>加密成功返回加密后的字符串,失败返回源串</returns>

    public static string EncryptDES( string encryptString, string encryptKey = "" )

    {

      try

      {

        if (string.IsNullOrEmpty(encryptKey) || encryptKey.Length < 8)

        {

          encryptKey = "winform01";

        }

        byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));

        byte[] rgbIV = Keys;

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

        DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();

        MemoryStream mStream = new MemoryStream();

        CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);

        cStream.Write(inputByteArray, 0, inputByteArray.Length);

        cStream.FlushFinalBlock();

        return Convert.ToBase64String(mStream.ToArray());

      }

      catch

      {

        return encryptString;

      }

    }

    /// <summary>

    /// DES解密字符串

    /// </summary>

    /// <param name="decryptString">待解密的字符串</param>

    /// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>

    /// <returns>解密成功返回解密后的字符串,失败返源串</returns>

    public static string DecryptDES( string decryptString, string decryptKey = "" )

    {

      try

      {

        if (string.IsNullOrEmpty(decryptKey) || decryptKey.Length < 8)

        {

          decryptKey = "winform01";

        }

        byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey.Substring(0, 8));

        byte[] rgbIV = Keys;

        byte[] inputByteArray = Convert.FromBase64String(decryptString);

        DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();

        MemoryStream mStream = new MemoryStream();

        CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);

        cStream.Write(inputByteArray, 0, inputByteArray.Length);

        cStream.FlushFinalBlock();

        return Encoding.UTF8.GetString(mStream.ToArray());

      }

      catch

      {

        return decryptString;

      }

    }

    /// <summary>

    /// MD5数据加密

    /// </summary>

    /// <param name="sDataIn">加密字段</param>

    /// <returns>加密后的字符串</returns>

    public static string GetMD5( string sDataIn )

    {

      System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();

      byte[] bytValue, bytHash;

      bytValue = System.Text.Encoding.UTF8.GetBytes(sDataIn);

      bytHash = md5.ComputeHash(bytValue);

      md5.Clear();

      string sTemp = "";

      for (int i = 0; i < bytHash.Length; i++)

      {

        sTemp += bytHash[i].ToString("x").PadLeft(2, '0');

      }

      return sTemp;

    }

  }

调用:


1

2

3

4

//获取登录信息

        loginRecord.Name = tbName.Text.Trim();

        loginRecord.MD5Pwd = TrialHelper.GetMD5(tbPwd.Password); //保存到数据库MD5加密方式

        loginRecord.Pwd = TrialHelper.EncryptDES(tbPwd.Password);//记住密码des加密方式,保存到本地

以上就是在ASP.NET中实现DES加密与解密MD5加密功能介绍的详细内容!

相关阅读 >>

asp.net core项目配置教程(6)_实用技巧

如何使用asp.net实现文件和文件夹的复制

asp.net(一)基础三层框架项目:web服务器、业务服务器、数据库服务器

理解asp.net中webform的生命周期_实用技巧

iis如何实现部署asp.net mvc网站的方法

asp.net core实例教程之如何设置中间件

asp.net core异常和错误处理(8)_实用技巧

分享两种asp.net网站发布时的遇到的问题及解决方案

分享asp.net学习笔记(10)webpages email

分享一个asp.net发送邮件实例

更多相关阅读请进入《asp.net》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...