ソースを参照

添加DES、AES加密

yuzhengyang 9 年 前
コミット
3ddb3cc051

+ 2 - 7
Fork.Net/Y.Controls/Container/FlexiblePanel.cs

@@ -1,11 +1,5 @@
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
 using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 using System.Windows.Forms;
 using System.Xml;
 
@@ -13,7 +7,8 @@ namespace Y.Controls.Container
 {
     public partial class FlexiblePanel : Panel
     {
-        Color HighlightColor = ColorTranslator.FromHtml("#78c4ec");
+        //Color HighlightColor = ColorTranslator.FromHtml("#78c4ec");
+        Color HighlightColor = Color.Transparent;
 
         /// <summary>
         /// 光标状态

+ 0 - 1
Fork.Net/Y.Controls/Y.Controls.csproj

@@ -39,7 +39,6 @@
     <Reference Include="System.Data.DataSetExtensions" />
     <Reference Include="Microsoft.CSharp" />
     <Reference Include="System.Data" />
-    <Reference Include="System.Net.Http" />
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>

+ 42 - 0
Fork.Net/Y.Utils.Net20/EncryptUtils/AesTool.cs

@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+using System.Security.Cryptography;
+using System.Text;
+
+namespace Y.Utils.Net20.EncryptUtils
+{
+    public class AesTool
+    {
+        public static string Encrypt(string s, string key)
+        {
+            //byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678901234567890123456789012");
+            byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
+            byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(s);
+
+            RijndaelManaged rDel = new RijndaelManaged();
+            rDel.Key = keyArray;
+            rDel.Mode = CipherMode.ECB;
+            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 s, string key)
+        {
+            byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
+            byte[] toEncryptArray = Convert.FromBase64String(s);
+
+            RijndaelManaged rDel = new RijndaelManaged();
+            rDel.Key = keyArray;
+            rDel.Mode = CipherMode.ECB;
+            rDel.Padding = PaddingMode.PKCS7;
+
+            ICryptoTransform cTransform = rDel.CreateDecryptor();
+            byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
+
+            return UTF8Encoding.UTF8.GetString(resultArray);
+        }
+    }
+}

+ 66 - 0
Fork.Net/Y.Utils.Net20/EncryptUtils/DesTool.cs

@@ -0,0 +1,66 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Security.Cryptography;
+using System.Text;
+
+namespace Y.Utils.Net20.EncryptUtils
+{
+    public class DesTool
+    {
+        #region DESEnCode DES加密     
+        public static string Encrypt(string pToEncrypt, string sKey)
+        {
+            // string pToEncrypt1 = HttpContext.Current.Server.UrlEncode(pToEncrypt);     
+            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
+            byte[] inputByteArray = Encoding.GetEncoding("UTF-8").GetBytes(pToEncrypt);
+
+            //建立加密对象的密钥和偏移量      
+            //原文使用ASCIIEncoding.ASCII方法的GetBytes方法      
+            //使得输入密码必须输入英文文本      
+            des.Key = Encoding.ASCII.GetBytes(sKey);
+            des.IV = Encoding.ASCII.GetBytes(sKey);
+            MemoryStream ms = new MemoryStream();
+            CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
+
+            cs.Write(inputByteArray, 0, inputByteArray.Length);
+            cs.FlushFinalBlock();
+
+            StringBuilder ret = new StringBuilder();
+            foreach (byte b in ms.ToArray())
+            {
+                ret.AppendFormat("{0:X2}", b);
+            }
+            ret.ToString();
+            return ret.ToString();
+        }
+        #endregion
+
+        #region DESDeCode DES解密     
+        public static string Decrypt(string pToDecrypt, string sKey)
+        {
+            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
+
+            byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
+            for (int x = 0; x < pToDecrypt.Length / 2; x++)
+            {
+                int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
+                inputByteArray[x] = (byte)i;
+            }
+
+            des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
+            des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
+            MemoryStream ms = new MemoryStream();
+            CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
+            cs.Write(inputByteArray, 0, inputByteArray.Length);
+            cs.FlushFinalBlock();
+
+            StringBuilder ret = new StringBuilder();
+
+            return System.Text.Encoding.Default.GetString(ms.ToArray());
+        }
+        #endregion
+
+
+    }
+}

+ 140 - 0
Fork.Net/Y.Utils.Net20/ImageUtils/ImageTool.cs

@@ -0,0 +1,140 @@
+using System;
+using System.Drawing;
+
+namespace Y.Utils.Net20.ImageUtils
+{
+    public class ImageTool
+    {
+        /// <summary> 
+        /// 生成缩略图 
+        /// </summary> 
+        /// <param name="originalImagePath">源图路径(物理路径)</param> 
+        /// <param name="thumbnailPath">缩略图路径(物理路径)</param> 
+        /// <param name="width">缩略图宽度</param> 
+        /// <param name="height">缩略图高度</param> 
+        /// <param name="mode">生成缩略图的方式</param>     
+        public static bool MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
+        {
+            Image originalImage = Image.FromFile(originalImagePath);
+            int towidth = width;
+            int toheight = height;
+            int x = 0;
+            int y = 0;
+            int ow = originalImage.Width;
+            int oh = originalImage.Height;
+            switch (mode)
+            {
+                case "HW"://指定高宽缩放(可能变形)                 
+                    break;
+                case "W"://指定宽,高按比例                     
+                    toheight = originalImage.Height * width / originalImage.Width;
+                    break;
+                case "H"://指定高,宽按比例 
+                    towidth = originalImage.Width * height / originalImage.Height;
+                    break;
+                case "Cut"://指定高宽裁减(不变形)                 
+                    if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
+                    {
+                        oh = originalImage.Height;
+                        ow = originalImage.Height * towidth / toheight;
+                        y = 0;
+                        x = (originalImage.Width - ow) / 2;
+                    }
+                    else
+                    {
+                        ow = originalImage.Width;
+                        oh = originalImage.Width * height / towidth;
+                        x = 0;
+                        y = (originalImage.Height - oh) / 2;
+                    }
+                    break;
+                default:
+                    break;
+            }
+            //新建一个bmp图片 
+            Image bitmap = new System.Drawing.Bitmap(towidth, toheight);
+            //新建一个画板 
+            Graphics g = System.Drawing.Graphics.FromImage(bitmap);
+            //设置高质量插值法 
+            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
+            //设置高质量,低速度呈现平滑程度 
+            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
+            //清空画布并以透明背景色填充 
+            g.Clear(Color.Transparent);
+            //在指定位置并且按指定大小绘制原图片的指定部分 
+            g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight),
+                new Rectangle(x, y, ow, oh),
+                GraphicsUnit.Pixel);
+            try
+            {
+                //以jpg格式保存缩略图 
+                bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
+                return true;
+            }
+            catch (System.Exception e)
+            {
+                return false;
+                //throw e;
+            }
+            finally
+            {
+                originalImage.Dispose();
+                bitmap.Dispose();
+                g.Dispose();
+            }
+        }
+        /// <summary>
+        /// 逆时针旋转图像
+        /// </summary>
+        /// <param name="originalImagePath">原始图像路径</param>
+        /// <param name="saveImagePath">保存图像的路径</param>
+        /// <param name = "angle" > 旋转角度[0, 360](前台给的) </ param >
+        /// <returns></returns>
+        public static bool RotateImg(string originalImagePath, string saveImagePath, int angle)
+        {
+            Image originalImage = Image.FromFile(originalImagePath);
+            angle = angle % 360;
+            //弧度转换  
+            double radian = angle * Math.PI / 180.0;
+            double cos = Math.Cos(radian);
+            double sin = Math.Sin(radian);
+            //原图的宽和高  
+            int w = originalImage.Width;
+            int h = originalImage.Height;
+            int W = (int)(Math.Max(Math.Abs(w * cos - h * sin), Math.Abs(w * cos + h * sin)));
+            int H = (int)(Math.Max(Math.Abs(w * sin - h * cos), Math.Abs(w * sin + h * cos)));
+            //目标位图  
+            Bitmap saveImage = new Bitmap(W, H);
+            Graphics g = Graphics.FromImage(saveImage);
+            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bilinear;
+            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
+            //计算偏移量  
+            Point Offset = new Point((W - w) / 2, (H - h) / 2);
+            //构造图像显示区域:让图像的中心与窗口的中心点一致  
+            Rectangle rect = new Rectangle(Offset.X, Offset.Y, w, h);
+            Point center = new Point(rect.X + rect.Width / 2, rect.Y + rect.Height / 2);
+            g.TranslateTransform(center.X, center.Y);
+            g.RotateTransform(360 - angle);
+            //恢复图像在水平和垂直方向的平移  
+            g.TranslateTransform(-center.X, -center.Y);
+            g.DrawImage(originalImage, rect);
+            //重至绘图的所有变换  
+            g.ResetTransform();
+            g.Save();
+            //保存旋转后的图片  
+            originalImage.Dispose();
+            try
+            {
+                saveImage.Save(saveImagePath, System.Drawing.Imaging.ImageFormat.Jpeg);
+                return true;
+            }
+            catch (Exception e) { return false; }
+            finally
+            {
+                originalImage.Dispose();
+                saveImage.Dispose();
+                g.Dispose();
+            }
+        }
+    }
+}

+ 0 - 142
Fork.Net/Y.Utils.Net20/MysqlUtils/MysqlTool.cs

@@ -1,142 +0,0 @@
-using MySql.Data.MySqlClient;
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Data;
-using System.Text;
-
-namespace Y.Utils.Net20.MysqlUtils
-{
-    /// <summary>
-    /// MySQL数据库操作
-    /// author:hhm
-    /// date:2012-2-22
-    /// </summary>
-    public class MysqlTool
-    {
-        #region 私有变量
-        //private const string defaultConfigKeyName = "DbHelper";//连接字符串 默认Key
-        private string ConnectionString;
-        private string ProviderName;
-
-        #endregion
-
-        #region 构造函数
-        public MysqlTool(string connstr, string prostr = "MySql.Data.MySqlClient")
-        {
-            ConnectionString = connstr;
-            ProviderName = prostr;
-        }
-
-        /// <summary>
-        /// 默认构造函数(DbHelper)
-        /// </summary>
-        //public MysqlTool()
-        //{
-        //    this.connectionString = ConfigurationManager.ConnectionStrings["DbHelper"].ConnectionString;
-        //    this.providerName = ConfigurationManager.ConnectionStrings["DbHelper"].ProviderName;
-        //}
-
-        /// <summary>
-        /// DbHelper构造函数
-        /// </summary>
-        /// <param name="keyName">连接字符串名</param>
-        //public MysqlTool(string keyName)
-        //{
-        //    this.connectionString = ConfigurationManager.ConnectionStrings[keyName].ConnectionString;
-        //    this.providerName = ConfigurationManager.ConnectionStrings[keyName].ProviderName;
-        //}
-
-        #endregion
-
-        public int ExecuteNonQuery(string sql, params MySqlParameter[] parameters)
-        {
-            MySqlConnection con = new MySqlConnection(ConnectionString);
-            con.Open();
-            MySqlCommand cmd = new MySqlCommand(sql, con);
-            foreach (MySqlParameter parameter in parameters)
-            {
-                cmd.Parameters.Add(parameter);
-            }
-            int res = 0;
-            try
-            {
-                res = cmd.ExecuteNonQuery();
-            }
-            catch (Exception ex)
-            {
-                res = -1;
-            }
-            cmd.Dispose();
-            con.Close();
-            return res;
-        }
-
-        public object ExecuteScalar(string sql, params MySqlParameter[] parameters)
-        {
-            MySqlConnection con = new MySqlConnection(ConnectionString);
-            con.Open();
-            MySqlCommand cmd = new MySqlCommand(sql, con);
-            foreach (MySqlParameter parameter in parameters)
-            {
-                cmd.Parameters.Add(parameter);
-            }
-            object res = cmd.ExecuteScalar();
-            cmd.Dispose();
-            con.Close();
-            return res;
-        }
-
-        public DataTable ExecuteDataTable(string sql, params MySqlParameter[] parameters)
-        {
-            MySqlConnection con = new MySqlConnection(ConnectionString);
-            con.Open();
-            MySqlCommand cmd = new MySqlCommand(sql, con);
-            foreach (MySqlParameter parameter in parameters)
-            {
-                cmd.Parameters.Add(parameter);
-            }
-            DataSet dataset = new DataSet();//dataset放执行后的数据集合
-            MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
-            adapter.Fill(dataset);
-            cmd.Dispose();
-            con.Close();
-            return dataset.Tables[0];
-        }
-        //Test
-        //string constring = "Server=db4free.net;Database=db4free_yzy; User=yuzhengyang;Password=yzy50665;Use Procedure Bodies=false;Charset=utf8;Allow Zero Datetime=True; Pooling=false; Max Pool Size=50;";
-        //MysqlTool ms = new MysqlTool(connstr: constring);
-        //ms.ExecuteDataTable2("select * from user");
-        public void ExecuteDataTable2(string sql, params MySqlParameter[] parameters)
-        {
-
-
-            MySqlConnection sqlCon = new MySqlConnection(ConnectionString);
-            //设置查询命令
-            MySqlCommand cmd = new MySqlCommand(sql, sqlCon);
-            //查询结果读取器
-            MySqlDataReader reader = null;
-
-            //获取查询结果代码:
-            try
-            {
-                //打开连接
-                sqlCon.Open();
-                //执行查询,并将结果返回给读取器
-                reader = cmd.ExecuteReader();
-                while (reader.Read())
-                {
-                    string x = "ID=" + reader[0].ToString() + " ,TITLE=" + reader[1].ToString() + " ,KEYWORD=" +
-                    reader[2].ToString() + " ,CONTENT=" + reader[3].ToString() + ".";
-                }
-
-            }
-            catch (Exception ex) { }
-            finally
-            {
-                reader.Close();
-                sqlCon.Close();
-            }
-        }
-    }
-}

+ 4 - 5
Fork.Net/Y.Utils.Net20/Y.Utils.Net20.csproj

@@ -30,10 +30,6 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="MySql.Data, Version=5.0.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\Dlls\MySql\v2.0\MySql.Data.dll</HintPath>
-    </Reference>
     <Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
       <HintPath>..\..\..\..\GitHub\Marx\Marx\packages\Newtonsoft.Json.9.0.1\lib\net20\Newtonsoft.Json.dll</HintPath>
       <Private>True</Private>
@@ -41,23 +37,26 @@
     <Reference Include="System" />
     <Reference Include="System.configuration" />
     <Reference Include="System.Data" />
+    <Reference Include="System.Drawing" />
     <Reference Include="System.Web" />
     <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
     <Compile Include="AppUtils\AppUnique.cs" />
+    <Compile Include="EncryptUtils\AesTool.cs" />
+    <Compile Include="EncryptUtils\DesTool.cs" />
     <Compile Include="EnumUtils\FlagsEnumTool.cs" />
     <Compile Include="FileUtils\DirTool.cs" />
     <Compile Include="FileUtils\FileCode.cs" />
     <Compile Include="FileUtils\FileTool.cs" />
     <Compile Include="HookUtils\UserActivityHook.cs" />
     <Compile Include="HttpUtils\HttpTool.cs" />
+    <Compile Include="ImageUtils\ImageTool.cs" />
     <Compile Include="JsonUtils\JsonTool.cs" />
     <Compile Include="ListUtils\ListTool.cs" />
     <Compile Include="LogUtils\Log.cs" />
     <Compile Include="LogUtils\LogType.cs" />
-    <Compile Include="MysqlUtils\MysqlTool.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="StringUtils\SimilarString.cs" />
     <Compile Include="StringUtils\StringTool.cs" />