.net名称空间System.Security.Cryptography下DESCryptoServiceProvider类为我们提供了加密和解密方法,我们只需少许代码便可实现加密和解密。

稍感不托的地方,如果不是自行加密的在解密时会报错。

使用注意事项,密钥64位,8个字符。

定义默认加密密钥

const string KEY_64 = "ChinabCd";
const string IV_64 = "ChinabCd";

加密

/// <summary>
/// 按指定键值进行加密
/// </summary>
/// <param name="strContent">要加密字符</param>
/// <param name="strKey">自定义键值</param>
/// <returns></returns>

public static string EnCrypt(string strContent, string strKey)

        {
            if (string.IsNullOrEmpty(strContent)) return string.Empty;
            if (strKey.Length > 8) strKey = strKey.Substring(0, 8); else strKey = KEY_64;
            byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(strKey);
            byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

            DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
            int i = cryptoProvider.KeySize;
            MemoryStream ms = new MemoryStream();
            CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);

            StreamWriter sw = new StreamWriter(cst);
            sw.Write(strContent);
            sw.Flush();
            cst.FlushFinalBlock();
            sw.Flush();
            return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
        }
View Code

相关文章:

  • 2022-12-23
  • 2021-10-31
  • 2022-12-23
  • 2022-02-03
  • 2021-12-18
猜你喜欢
  • 2021-11-20
  • 2022-02-21
  • 2022-12-23
  • 2021-07-14
  • 2022-12-23
  • 2021-10-01
  • 2022-01-01
相关资源
相似解决方案