现在要对jpg问价加解密,需要加密后存为其他格式的加密文件,需要在加密的时候在文件内加入一个文件头字符串,肿么搞涅。包括对这个加密问价解密、、、、、、纠结好久了

解决方案 »

  1.   

    试下
     /// <summary>
        /// 对图片进行简单的加密解密,加密后的图片无法用系统自带图片浏览器打开
        /// </summary>
        public static class EncryptOrDecrypt
        {
            //在图片中追加的byte数组,随意字符串
            static byte[] b2 = System.Text.Encoding.Default.GetBytes("JFIF");        /// <summary>
            /// 加密图片,在传入的byte[]中追加数组
            /// </summary>
            /// <param name="b1">未加密的byte[]</param>
            /// <returns>加密的byte[]</returns>
            public static byte[] EncryptImg(byte[] b1)
            {
                byte[] b3 = new byte[b1.Length + b2.Length];
                Array.Copy(b2, b3, b2.Length);
                Array.Copy(b1, 0, b3, b2.Length, b1.Length);
                b1 = null;
                return b3;
            }        /// <summary>
            /// 解密图片,在传入的byte[]中移除追加数组
            /// </summary>
            /// <param name="b1">已加密的byte[]</param>
            /// <returns>解密的byte[]</returns>
            public static byte[] DecryptImg(byte[] b1)
            {
                byte[] b3 = new byte[b1.Length - b2.Length];
                try
                {
                    Array.Copy(b1,b2.Length, b3,0, b1.Length - b2.Length);
                    b1 = null;
                }
                catch (Exception)
                {
                    return b1;
                }
                return b3;
            }
        }
      

  2.   

    你只需要明白一点,文件就是一个字节数组,要加密文件,只需要加密这个byte[]就行了,解密就反过来,至于加密的方式,怎么样都随你,数组太大就分组加密
      

  3.   

    想往文件里写东西,就用filestream