AES 加密位: 128位,加密模式:CBC, 填充模式:Zeros

// AES 加密
        public byte[] AESEncrypt(string text)
        {
            byte[] data = Encoding.Unicode.GetBytes(text);
            SymmetricAlgorithm aes = Rijndael.Create();
            aes.Key = keyArray;
            aes.IV = keyArray;
            aes.Mode = CipherMode.CBC;
            aes.Padding = PaddingMode.Zeros;

            using (MemoryStream ms = new MemoryStream())
            {
                using (CryptoStream cs = new CryptoStream(ms, aes.CreateEncryptor(), CryptoStreamMode.Write))
                {
                    cs.Write(data, 0, data.Length);
                    cs.FlushFinalBlock();
                    byte[] cipherBytes = ms.ToArray(); // 得到加密后的字节数组
                    cs.Close();
                    ms.Close();
                    aes.Clear();

                    return cipherBytes;
                }
            }
        }
// AES 解密
        public string AESDecrypt(byte[] data)
        {
            SymmetricAlgorithm aes = Rijndael.Create();
            aes.Key = keyArray;
            aes.IV = keyArray;
            aes.Mode = CipherMode.CBC;
            aes.Padding = PaddingMode.Zeros;
            byte[] decryptBytes = new byte[data.Length];

            using (MemoryStream ms = new MemoryStream(data))
            {
                using (CryptoStream cs = new CryptoStream(ms, aes.CreateDecryptor(), CryptoStreamMode.Read))
                {
                    cs.Read(decryptBytes, 0, decryptBytes.Length);
                    cs.Close();
                    ms.Close();
                }
            }
            aes.Clear();

            return System.Text.Encoding.Unicode.GetString(decryptBytes).Replace("\0", " ");
        }

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-28 14:30:38

AES 加密位: 128位,加密模式:CBC, 填充模式:Zeros的相关文章

php AES cbc模式 pkcs7 128位加密解密(微信小程序)

PHP AES CBC模式PKCS7 128位加密 加密: $key = '1234567812345678'; $iv = '1234567890123456'; $message = '123456'; $blocksize = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $len = strlen($message); //取得字符串长度 $pad = $blocksize - ($len % $blocksiz

SGC强制最低128位加密,公钥支持ECC加密算法的SSL证书

  Pro SSL证书,验证企业域名所有权和企业身份信息,采用SGC(服务器门控)技术强制128位以上至256位加密,属于企业OV验证级专业版(Pro) SSL证书:即使用户使用低版本浏览器(比如浏览器加密强度为40位,56位等),也可以强制加密达到128位的加密强度.目前SSL证书公钥以2048 RSA加密算法为主流,而且Symantec Pro SSL证书还能支持公钥为256位 ECC加密算法.众所周知,256位加密的ECC SSL证书的安全性相当于3072位RSA SSL证书,但256位E

(SGC强制最低128位加密,公钥支持ECC加密算法的SSL证书)

  Pro SSL证书,验证企业域名所有权和企业身份信息,采用SGC(服务器门控)技术强制128位以上至256位加密,属于企业OV验证级专业版(Pro) SSL证书:即使用户使用低版本浏览器(比如浏览器加密强度为40位,56位等),也可以强制加密达到128位的加密强度.目前SSL证书公钥以2048 RSA加密算法为主流,而且Symantec Pro SSL证书还能支持公钥为256位 ECC加密算法.众所周知,256位加密的ECC SSL证书的安全性相当于3072位RSA SSL证书,但256位E

Java中的AES加解密

直接上代码,Base64使用的是Java8的方法,如没有,替换即可 KEY:即密码 IV:即偏移量,可自订,十六位 加密方式:AES/CBC/PKCS5Padding,128位加密 如果想用256位和PKCS7Padding需要额外导入包 import javax.crypto.*; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.security.Inva

AES加解密(C#和JAVA互通)

对接接口中遇到一个棘手的问题:甲方使用java开发,通过AES加密数据,我方使用C#开发,Java的代码和C#的代码无法互通. 1 /// <summary> 2 /// AES加密(128位,密码模式ECB,填充类型PKCS5Padding或者PKCS7Padding.注:ECB模式不需要初始化向量iv.) 3 /// </summary> 4 /// <param name="str"></param> 5 /// <param

python3 aes加解密代码

安装模块 python3.6 -m pip install pycryptodome 导入模块 from Crypto.PublicKey import RSA from Crypto.Cipher import AES from Crypto.Signature import PKCS1_v1_5 from Crypto.Hash import SHA256 ECB模式 ECB模式是分块进行加密的,可以实现并行加密,但是因为是分别加密的,如果遇到相同的明文,加密之后的密文也是一样的,那么它的安

C# 128位AES 加密解密 (转)

/// AES加密 2         /// </summary> 3         /// <param name="inputdata">输入的数据</param> 4         /// <param name="iv">向量128位</param> 5         /// <param name="strKey">加密密钥</param> 6 

AES加密,CBC模式,0填充

java的aes加密的CBC模式只有NoPadding,PKCS5Padding,PKCS7Padding,因此0填充需要手动更改 public static byte[] encrypt(byte[] data, byte[] iv, byte[] key) { if(key.length != 16) { throw new RuntimeException("Invalid AES key length (must be 16 bytes)"); } else { try { S

分组加密的四种模式(ECB、CBC、CFB、OFB)

加密一般分为对称加密(Symmetric Key Encryption)和非对称加密(Asymmetric Key Encryption). 对称加密又分为分组加密和序列password. 分组password.也叫块加密(block cyphers).一次加密明文中的一个块.是将明文按一定的位长分组,明文组经过加密运算得到密文组,密文组经过解密运算(加密运算的逆运算),还原成明文组. 序列password.也叫流加密(stream cyphers),一次加密明文中的一个位.是指利用少量的密钥(