栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

针对JAVA文件使用AES加密的 使用AES/ECB/PKCS5PaddingC# 处理方式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

针对JAVA文件使用AES加密的 使用AES/ECB/PKCS5PaddingC# 处理方式

 #region 文件加密
        ///文件加密
        /// 
        /// 加密
        /// 
        /// 要加密的 byte[] 数组
        /// 
        /// 
        public static byte[] FileEncrypt(byte[] array, string key)
        {
            //key = FmtPassword(key);
            byte[] keyArray = Encoding.UTF8.GetBytes(key);
            int lengthkey = keyArray.Length;
            RijndaelManaged rDel = new RijndaelManaged();
            rDel.Key = keyArray;
            //rDel.IV =   keyArray;
            rDel.Mode = CipherMode.ECB;
            rDel.Padding = PaddingMode.PKCS7;

            ICryptoTransform cTransform = rDel.CreateEncryptor();
            byte[] resultArray = cTransform.TransformFinalBlock(array, 0, array.Length);
            PadToMultipleOf(ref resultArray, 16);//调成16倍数
            return resultArray;
        }
        /// 
        /// 将数据调成16倍数--------如果不是16标准倍数解密出错。java会爆出Input length must be multiple of 16 when decrypting with padded cipher
        /// 
        /// 
        /// 
        private static void PadToMultipleOf(ref byte[] src, int pad)
        {
            if (src.Length% pad != 0)//如果当前不是16的倍数,增加到指定16倍数
            {
                int len = (src.Length/pad+1) * pad;
                Array.Resize(ref src, len);
            }
           
        } 
 /// 
        /// 解密
        /// 
        /// 要解密的 byte[] 数组
        /// 
        /// 
        public static byte[] FileDecrypt(byte[] array, string key)
        {
            //key = FmtPassword(key);
            byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);

            RijndaelManaged rDel = new RijndaelManaged();
            rDel.Key = keyArray;
            rDel.Mode = CipherMode.ECB;
            rDel.Padding = PaddingMode.PKCS7;

            ICryptoTransform cTransform = rDel.CreateDecryptor();
            byte[] resultArray = cTransform.TransformFinalBlock(array, 0, array.Length);

            return resultArray;
        }
        #endregion
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/351763.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号