• <经验杂谈>C#使用AES加密解密的简单介绍


    AES 算法是基于置换和代替的。置换是数据的重新排列,而代替是用一个单元数据替换另一个。AES 使用了几种不同的技术来实现置换和替换。

    以下是我自己用c#研究出来算法Code:

            /// <summary>
            ///  AES 加密
            /// </summary>
            /// <param name="str"></param>
            /// <param name="key"></param>
            /// <returns></returns>
            public static string AesEncrypt(string str, string key)
            {
                try
                {
                    if (string.IsNullOrEmpty(str)) return null;
                    Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str);
    
                    System.Security.Cryptography.RijndaelManaged rm = new System.Security.Cryptography.RijndaelManaged
                    {
                        Key = Encoding.UTF8.GetBytes(key),
                        Mode = System.Security.Cryptography.CipherMode.ECB,
                        Padding = System.Security.Cryptography.PaddingMode.PKCS7
                    };
    
                    System.Security.Cryptography.ICryptoTransform cTransform = rm.CreateEncryptor();
                    Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
    
                    return Convert.ToBase64String(resultArray, 0, resultArray.Length);
                }
                catch (Exception ex)
                {
                    LogHelper.WriteLog(LogFile.Error, ex.Message);
                    return "";
                }
            }
    
            /// <summary>
            ///  AES 解密
            /// </summary>
            /// <param name="str"></param>
            /// <param name="key"></param>
            /// <returns></returns>
            public static string AesDecrypt(string str, string key)
            {
                try
                {
                    if (string.IsNullOrEmpty(str)) return null;
                    Byte[] toEncryptArray = Convert.FromBase64String(str);
    
                    System.Security.Cryptography.RijndaelManaged rm = new System.Security.Cryptography.RijndaelManaged
                    {
                        Key = Encoding.UTF8.GetBytes(key),
                        Mode = System.Security.Cryptography.CipherMode.ECB,
                        Padding = System.Security.Cryptography.PaddingMode.PKCS7
                    };
    
                    System.Security.Cryptography.ICryptoTransform cTransform = rm.CreateDecryptor();
                    Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
    
                    return Encoding.UTF8.GetString(resultArray);
                }
                catch (Exception ex)
                {
                    LogHelper.WriteLog(LogFile.Error, ex.Message);
                    return "";
                }
            }
  • 相关阅读:
    Table Groups [AX 2012]
    Extended Data Type Properties [AX 2012]
    Base Enum Properties [AX 2012]
    Dynamics AX 2012 R2 Business Connector Error
    [转]System.Reflection.AssemblySignatureKeyAttribute
    为博客启用MetaWeBlog API
    How to create UrlSlug in Asp.Net MVC
    Serialize Documents with the C# Driver
    C# Driver LINQ Tutorial
    Getting Started with the C# Driver
  • 原文地址:https://www.cnblogs.com/benpao/p/6746594.html
Copyright © 2020-2023  润新知