当前位置: 移动技术网 > IT编程>开发语言>.net > AES CBC PKCS7 C# C++

AES CBC PKCS7 C# C++

2019年04月24日  | 移动技术网IT编程  | 我要评论

年年好节节高,六鳌好玩吗,甄子丹老婆

  c++算法见:

 

 

c#:

        public static string encrypt(string toencrypt, string key, string iv)
        {
            byte[] keyarray = utf8encoding.utf8.getbytes(key);
            byte[] ivarray = utf8encoding.utf8.getbytes(iv);
            byte[] toencryptarray = utf8encoding.utf8.getbytes(toencrypt);

            rijndaelmanaged rdel = new rijndaelmanaged();
            rdel.key = keyarray;
            rdel.iv = ivarray;
            rdel.mode = ciphermode.cbc;
            rdel.padding = paddingmode.pkcs7;

            icryptotransform ctransform = rdel.createencryptor();
            byte[] resultarray = ctransform.transformfinalblock(toencryptarray, 0, toencryptarray.length);

            return convert.tobase64string(resultarray, 0, resultarray.length);
        }

        public static string decrypt(string todecrypt, string key, string iv)
        {
            byte[] keyarray = utf8encoding.utf8.getbytes(key);
            byte[] ivarray = utf8encoding.utf8.getbytes(iv);
            byte[] toencryptarray = convert.frombase64string(todecrypt);

            rijndaelmanaged rdel = new rijndaelmanaged();
            rdel.key = keyarray;
            rdel.iv = ivarray;
            rdel.mode = ciphermode.cbc;
            rdel.padding = paddingmode.pkcs7;

            icryptotransform ctransform = rdel.createdecryptor();
            byte[] resultarray = ctransform.transformfinalblock(toencryptarray, 0, toencryptarray.length);

            return utf8encoding.utf8.getstring(resultarray);
        }

 

注意 key 和 iv 都需要为16位字符串

 

代码实现:https://1drv.ms/u/s!at1zjv3_16acmb8aisvhmvdyecfqlw

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网