• 还有几个工具类


    代码
     /// <summary>
        
    /// 反射类
        
    /// </summary>
        
    /// <typeparam name="T"></typeparam>
        public sealed class Reflector<T> where T : class
        {
            
    /// <summary>
            
    /// 通过反射创建实体
            
    /// </summary>
            
    /// <param name="classFullName">类的全名</param>
            
    /// <param name="dllName">dllName</param>
            
    /// <returns></returns>
            public static T Create(string classFullName, string dllName)
            {
                
    return Create(classFullName, dllName, true);
            }

            
    /// <summary>
            
    /// 通过反射创建实体
            
    /// </summary>
            
    /// <param name="classFullName">类的全名</param>
            
    /// <param name="dllName">dllName</param>
            
    /// <param name="cacheFlag">是否从缓存中读取</param>
            
    /// <returns></returns>
            public static T Create(string classFullName, string dllName, bool cacheFlag)
            {
                T objType 
    = null;
                
    if (cacheFlag)
                {
                    objType 
    = (T)CacheManage.GetFromCache(classFullName);
                    
    if (objType == null)
                    {
                        objType 
    = (T)Assembly.Load(dllName).CreateInstance(classFullName);//反射创建
                        CacheManage.SetCache(classFullName, objType);
                    }
                }
                
    else
                {
                    objType 
    = (T)CreateAssembly(dllName).CreateInstance(classFullName);//反射创建
                }
                
    return objType;
            }

            
    /// <summary>
            
    /// 创建Assembly
            
    /// </summary>
            
    /// <param name="dllName">dllName</param>
            
    /// <returns></returns>
            public static Assembly CreateAssembly(string dllName)
            {
                Assembly obj 
    = (Assembly)CacheManage.GetFromCache(dllName);
                
    if (obj == null)
                {
                    obj 
    = Assembly.Load(dllName);
                    CacheManage.SetCache(dllName, obj);
                }
                
    return obj;
            }
        }
    public class CacheManage
        {
            
    /// <summary>
            
    /// 从缓存获取
            
    /// </summary>
            
    /// <param name="objectkey"></param>
            
    /// <returns></returns>
            public static object GetFromCache(string objectkey)
            {
                System.Web.Caching.Cache objCache 
    = HttpRuntime.Cache;
                
    return objCache[objectkey];
            }
            
    /// <summary>
            
    /// 添加到缓存
            
    /// </summary>
            
    /// <param name="objectkey"></param>
            
    /// <param name="objObject"></param>
            public static void SetCache(string objectkey, object objObject)
            {
                System.Web.Caching.Cache objCache 
    = HttpRuntime.Cache;
                objCache.Insert(objectkey, objObject);
            }
        }
     
    /// <summary> 
        
    /// 加密
        
    /// </summary> 
        public class AES
        {
            
    //默认密钥向量
            private static byte[] Keys = { 0x410x720x650x790x6F0x750x6D0x790x530x6E0x6F0x770x6D0x610x6E0x3F };

            
    public static string Encode(string encryptString, string encryptKey)
            {
                encryptKey 
    = Utils.GetSubString(encryptKey, 32"");
                encryptKey 
    = encryptKey.PadRight(32' ');

                RijndaelManaged rijndaelProvider 
    = new RijndaelManaged();
                rijndaelProvider.Key 
    = Encoding.UTF8.GetBytes(encryptKey.Substring(032));
                rijndaelProvider.IV 
    = Keys;
                ICryptoTransform rijndaelEncrypt 
    = rijndaelProvider.CreateEncryptor();

                
    byte[] inputData = Encoding.UTF8.GetBytes(encryptString);
                
    byte[] encryptedData = rijndaelEncrypt.TransformFinalBlock(inputData, 0, inputData.Length);

                
    return Convert.ToBase64String(encryptedData);
            }

            
    public static string Decode(string decryptString, string decryptKey)
            {
                
    try
                {
                    decryptKey 
    = Utils.GetSubString(decryptKey, 32"");
                    decryptKey 
    = decryptKey.PadRight(32' ');

                    RijndaelManaged rijndaelProvider 
    = new RijndaelManaged();
                    rijndaelProvider.Key 
    = Encoding.UTF8.GetBytes(decryptKey);
                    rijndaelProvider.IV 
    = Keys;
                    ICryptoTransform rijndaelDecrypt 
    = rijndaelProvider.CreateDecryptor();

                    
    byte[] inputData = Convert.FromBase64String(decryptString);
                    
    byte[] decryptedData = rijndaelDecrypt.TransformFinalBlock(inputData, 0, inputData.Length);

                    
    return Encoding.UTF8.GetString(decryptedData);
                }
                
    catch
                {
                    
    return "";
                }

            }

            
    public static string Encode(string encryptString)
            {
                
    return Encode(encryptString, "jidesoft");
            }

            
    public static string Decode(string encryptString)
            {
                
    return Decode(encryptString, "jidesoft");
            }
        }

        
    /// <summary> 
        
    /// 加密
        
    /// </summary> 
        public class DES
        {
            
    //默认密钥向量
            private static byte[] Keys = { 0x120x340x560x780x900xAB0xCD0xEF };

            
    /// <summary>
            
    /// DES加密字符串
            
    /// </summary>
            
    /// <param name="encryptString">待加密的字符串</param>
            
    /// <param name="encryptKey">加密密钥,要求为8位</param>
            
    /// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
            public static string Encode(string encryptString, string encryptKey)
            {
                encryptKey 
    = Utils.GetSubString(encryptKey, 8"");
                encryptKey 
    = encryptKey.PadRight(8' ');
                
    byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(08));
                
    byte[] rgbIV = Keys;
                
    byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
                DESCryptoServiceProvider dCSP 
    = new DESCryptoServiceProvider();
                MemoryStream mStream 
    = new MemoryStream();
                CryptoStream cStream 
    = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                cStream.Write(inputByteArray, 
    0, inputByteArray.Length);
                cStream.FlushFinalBlock();
                
    return Convert.ToBase64String(mStream.ToArray());

            }

            
    /// <summary>
            
    /// DES解密字符串
            
    /// </summary>
            
    /// <param name="decryptString">待解密的字符串</param>
            
    /// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
            
    /// <returns>解密成功返回解密后的字符串,失败返源串</returns>
            public static string Decode(string decryptString, string decryptKey)
            {
                
    try
                {
                    decryptKey 
    = Utils.GetSubString(decryptKey, 8"");
                    decryptKey 
    = decryptKey.PadRight(8' ');
                    
    byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
                    
    byte[] rgbIV = Keys;
                    
    byte[] inputByteArray = Convert.FromBase64String(decryptString);
                    DESCryptoServiceProvider DCSP 
    = new DESCryptoServiceProvider();

                    MemoryStream mStream 
    = new MemoryStream();
                    CryptoStream cStream 
    = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                    cStream.Write(inputByteArray, 
    0, inputByteArray.Length);
                    cStream.FlushFinalBlock();
                    
    return Encoding.UTF8.GetString(mStream.ToArray());
                }
                
    catch
                {
                    
    return "";
                }
            }

            
    public static string Encode(string encryptString)
            {
                
    return Encode(encryptString, "jidesoft");
            }

            
    public static string Decode(string encryptString)
            {
                
    return Decode(encryptString, "jidesoft");
            }
        } 
  • 相关阅读:
    javascript深入理解js闭包
    hibernate 之 sql查询
    MongoDB 2.4企业版分析
    MongoDB 连接池
    GridFS实现原理
    MongoVUE破解
    mongodb 官方 手册
    mongodb的一些性能管理工具
    Python: names, values, assignment and mutability
    使用 mock 测试
  • 原文地址:https://www.cnblogs.com/chenqingwei/p/1862101.html
Copyright © 2020-2023  润新知