AES的c#实现

public static byte[] AES_Encrypt128(byte[] bytesToBeEncrypted, byte[] passwordBytes)

        {

            byte[] key = new byte[16];

            if(passwordBytes.Length>16)

            {

                Array.Copy(passwordBytes, 0, key, 0, 16);

            }

            else

            {

                key = passwordBytes;

            }

            byte[] encryptedBytes = null;

            using (MemoryStream ms = new MemoryStream())

            {

                using (RijndaelManaged AES = new RijndaelManaged())

                {

                    AES.KeySize = 128;

                    AES.BlockSize = 128;

                    AES.Padding = PaddingMode.None;//如果不是None, 会自动添加一个Block

                    AES.Mode = CipherMode.ECB;

                    AES.Key = key;

                    using (CryptoStream cs = new CryptoStream(ms, AES.CreateEncryptor(), CryptoStreamMode.Write))

                    {

                        cs.Write(bytesToBeEncrypted, 0, bytesToBeEncrypted.Length);

                        cs.Close();

                    }

                    encryptedBytes = ms.ToArray();

                }

            }

            return encryptedBytes;

        }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。