C#字符串连接和加密代码详解

c程序员 by:c程序员 分类:C# 时间:2024/08/15 阅读:70 评论:0

使用C#进行字符串连接

在C#中,字符串连接是常见的操作。可以使用"+"运算符将两个字符串连接起来。例如,可以将一个变量或者一个字符串文本与一个变量进行连接:

    
      string str1 = "Hello";
      string str2 = "World";
      string result = str1 + " " + str2;
      Console.WriteLine(result); // 输出:Hello World
    
  

还可以使用String.Concat()方法将多个字符串连接起来:

    
      string str1 = "Hello";
      string str2 = "World";
      string result = String.Concat(str1, " ", str2);
      Console.WriteLine(result); // 输出:Hello World
    
  

使用C#进行字符串加密

在某些情况下,我们可能需要对字符串进行加密,以增强数据的安全性。C#提供了多种字符串加密的方式,包括MD5、SHA1、AES等。

MD5加密

MD5是一种常用的哈希算法,可以将任意长度的消息转换成一个固定长度的128位hash值。以下是使用MD5对字符串进行加密的示例代码:

    
      string str = "Hello World";
      using (MD5 md5 = MD5.Create())
      {
          byte[] hashBytes = md5.ComputeHash(Encoding.UTF8.GetBytes(str));
          StringBuilder sb = new StringBuilder();
          for (int i = 0; i < hashBytes.Length; i++)
          {
              sb.Append(hashBytes[i].ToString("x2"));
          }
          string encryptedString = sb.ToString();
          Console.WriteLine(encryptedString); // 输出加密后的字符串
      }
    
  

SHA1加密

SHA1是一种更安全的哈希算法,可以将任意长度的消息转换成一个固定长度的160位hash值。以下是使用SHA1对字符串进行加密的示例代码:

    
      string str = "Hello World";
      using (SHA1 sha1 = SHA1.Create())
      {
          byte[] hashBytes = sha1.ComputeHash(Encoding.UTF8.GetBytes(str));
          StringBuilder sb = new StringBuilder();
          for (int i = 0; i < hashBytes.Length; i++)
          {
              sb.Append(hashBytes[i].ToString("x2"));
          }
          string encryptedString = sb.ToString();
          Console.WriteLine(encryptedString); // 输出加密后的字符串
      }
    
  

AES加密

AES是一种对称加密算法,可用于加密和解密数据。以下是使用AES对字符串进行加密和解密的示例代码:

    
      static string EncryptString(string plainText, string key, string iv)
      {
          byte[] keyBytes = Encoding.UTF8.GetBytes(key);
          byte[] ivBytes = Encoding.UTF8.GetBytes(iv);
          using (Aes aes = Aes.Create())
          {
              aes.Key = keyBytes;
              aes.IV = ivBytes;
              ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
              using (MemoryStream ms = new MemoryStream())
              {
                  using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
                  {
                      using (StreamWriter writer = new StreamWriter(cs))
                      {
                          writer.Write(plainText);
                      }
                      byte[] encryptedBytes = ms.ToArray();
                      return Convert.ToBase64String(encryptedBytes);
                  }
              }
          }
      }
        
      static string DecryptString(string encryptedText, string key, string iv)
      {
          byte[] keyBytes = Encoding.UTF8.GetBytes(key);
          byte[] ivBytes = Encoding.UTF8.GetBytes(iv);
          byte[] encryptedBytes = Convert.FromBase64String(encryptedText);
          using (Aes aes = Aes.Create())
          {
              aes.Key = keyBytes;
              aes.IV = ivBytes;
              ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
              using (MemoryStream ms = new MemoryStream(encryptedBytes))
              {
                  using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
                  {
                      using (StreamReader reader = new StreamReader(cs))
                      {
                          return reader.ReadToEnd();
                      }
                  }
              }
          }
      }
        
      string str = "Hello World";
      string key = "mysecretkey";
      string iv = "mysecretiv";
      string encryptedString = EncryptString(str, key, iv);
      Console.WriteLine(encryptedString); // 输出加密后的字符串

      string decryptedString = DecryptString(encryptedString, key, iv);
      Console.WriteLine(decryptedString); // 输出解密后的字符串
    
  

以上是使用C#进行字符串连接和加密的一些常用方法,可以根据实际需求选择合适的方法。在实际开发中,也可以根据具体的业务场景,结合其他加密算法和安全措施,以保障数据的安全性。

谢谢您阅读本篇文章,希望能对您理解C#字符串连接和加密有所帮助。

非特殊说明,本文版权归原作者所有,转载请注明出处

本文地址:https://chinaasp.com/2024082119.html


TOP