当前位置: 首页 > news >正文

网站建设综合实训心得体会湘潭做网站的公司

网站建设综合实训心得体会,湘潭做网站的公司,qq教程网站织梦,花瓣网设计网站一. IO读写   这里主要包括文件的读、写、移动、复制、删除、文件夹的创建、文件夹的删除等常规操作。 注意#xff1a;这里需要特别注意#xff0c;对于普通的控制台程序和Web程序#xff0c;将相对路径转换成绝对路径的方法不一致。 (1). 在w…一. IO读写   这里主要包括文件的读、写、移动、复制、删除、文件夹的创建、文件夹的删除等常规操作。 注意这里需要特别注意对于普通的控制台程序和Web程序将相对路径转换成绝对路径的方法不一致。 (1). 在web程序中,可以使用HttpContext.Current.Server.MapPath进行转换使用方法通过 ~/定位到一级目录egFileOperateHelp.Write_Txt(~/TestFile/mr.txt, mr)。 (2). 在普通的控制台程序中HttpContext.Current为空所以web中的转换方式在控制台中失效需要借助 AppDomain.CurrentDomain.BaseDirectory来获取根目录该目录直接定位到Debug文件夹然后利用System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, strPath)传入路径与根目录进行结合所以普通的控制台程序生成的所有文件均在Debug文件夹下当然你也可以直接写绝对路径比如D:xxx。 下面的方法就是专门处理普通程序和web程序路径转换问题的。 1 /// summary2 /// 10.将相对路径转换成绝对路径3 /// /summary4 /// param namestrPath相对路径/param5 public static string PathConvert(string strPath)6 {7 //web程序使用8 if (HttpContext.Current ! null)9 { 10 return HttpContext.Current.Server.MapPath(strPath); 11 } 12 else //非web程序引用 13 { 14 strPath strPath.Replace(/, \\); 15 if (strPath.StartsWith(\\)) 16 { 17 strPath strPath.TrimStart(\\); 18 } 19 return System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, strPath); 20 } 21 } 下面分享一个FileOperateHelp类里面包含IO的常规操作。 View Code 1. 在控制台中进行调用。 1 //1.写文件测试(覆盖写入)2 FileOperateHelp.Write_Txt(TestFile/mr.txt, mr123);3 FileOperateHelp.Write_Txt(TestFile/mr2.txt, mr123);4 //2.读文件测试5 string msg1 FileOperateHelp.Read_Txt(TestFile/mr.txt);6 7 //3.写文件测试(追加写入)8 FileOperateHelp.WriteFile(TestFile/mr.txt, 123456);9 //4.读文件测试 10 string msg2 FileOperateHelp.ReadFile(TestFile/mr.txt); 11 12 //5.删除文件测试 13 FileOperateHelp.FileDel(TestFile/mr2.txt); 14 15 //6.移动文件测试 16 FileOperateHelp.FileMove(TestFile/mr.txt, TestFile/TEST/mr移动.txt); 17 18 //7.复制文件测试 19 FileOperateHelp.FileCopy(TestFile/mr3.txt, TestFile/TEST/mr3Copy.txt); 20 21 //8.创建文件夹 22 FileOperateHelp.FolderCreate(TestFile/TEST2); 23 24 //9.递归删除文件夹删除a文件夹 25 FileOperateHelp.DeleteFolder(TestFile/TestDel/a/); 2. 在Web程序中进行调用 1 public void Index()2 {3 //1.写文件测试(覆盖写入)4 FileOperateHelp.Write_Txt(~/TestFile/mr.txt, mr123);5 FileOperateHelp.Write_Txt(~/TestFile/mr2.txt, mr123);6 //2.读文件测试7 string msg1 FileOperateHelp.Read_Txt(~/TestFile/mr.txt);8 9 //3.写文件测试(追加写入) 10 FileOperateHelp.WriteFile(~/TestFile/mr.txt, 123456); 11 //4.读文件测试 12 string msg2 FileOperateHelp.ReadFile(~/TestFile/mr.txt); 13 14 //5.删除文件测试 15 FileOperateHelp.FileDel(~/TestFile/mr2.txt); 16 17 //6.移动文件测试 18 FileOperateHelp.FileMove(~/TestFile/mr.txt, ~/TestFile/TEST/mr移动.txt); 19 20 //7.复制文件测试 21 FileOperateHelp.FileCopy(~/TestFile/mr3.txt, ~/TestFile/TEST/mr3Copy.txt); 22 23 //8.创建文件夹 24 FileOperateHelp.FolderCreate(~/TestFile/TEST2); 25 26 //9.递归删除文件夹删除a文件夹 27 FileOperateHelp.DeleteFolder(~/TestFile/TestDel/a/); 28 29 } 二. 序列化和反序列化 1. 在.Net中序列化和反序列化主要有两种 方案一利用JavaScriptSerializer对象实现需要添加System.Web.Extensions程序集的引用。 方案二利用程序集Newtonsoft.Json.dll来实现。 注意如果要把某个类序列化需要在该类上面加一个 [Serializable]属性。 下面分享一个JsonHelp类该类主要提供两种序列化和反序列化的方法代码如下 1 public class JsonHelp2 {3 #region 01-将JSON转换成JSON字符串4 /// summary5 /// 将JSON转换成JSON字符串6 /// /summary7 /// typeparam nameT/typeparam8 /// param nameobj/param9 /// returns/returns 10 public static string ObjectToStringT(T obj) 11 { 12 JavaScriptSerializer jss new JavaScriptSerializer(); 13 return jss.Serialize(obj); 14 } 15 #endregion 16 17 #region 02-将字符串转换成JSON对象 18 /// summary 19 /// 将字符串转换成JSON对象 20 /// /summary 21 /// typeparam nameT/typeparam 22 /// param namecontent/param 23 /// returns/returns 24 public static T StringToObjectT(string content) 25 { 26 JavaScriptSerializer jss new JavaScriptSerializer(); 27 return jss.DeserializeT(content); 28 } 29 #endregion 30 31 #region 03-将JSON转换成JSON字符串 32 /// summary 33 ///将JSON转换成JSON字符串 34 /// /summary 35 /// typeparam nameT/typeparam 36 /// param nameobj/param 37 /// returns/returns 38 public static string ToJsonStringT(T obj) 39 { 40 return JsonConvert.SerializeObject(obj); 41 } 42 #endregion 43 44 #region 04-将字符串转换成JSON对象 45 /// summary 46 /// 将字符串转换成JSON对象 47 /// /summary 48 /// typeparam nameT/typeparam 49 /// param namecontent/param 50 /// returns/returns 51 public static T ToObjectT(string content) 52 { 53 return JsonConvert.DeserializeObjectT(content); 54 } 55 #endregion 56 } 2. 代码调用 1 //1. 将JSON对象转换成JSON字符串2 Console.WriteLine(-------------------------------------1. 将JSON转换成JSON字符串------------------------------------------);3 var myObj new4 {5 id 1,6 name ypf,7 myList studentList,8 myList2 studentList.Where(u u.Age 27).Select(u new9 { 10 t1 u.Age, 11 t2 u.ClassId 12 }).ToList() 13 14 }; 15 //1.1 方式一 16 string myString1 JsonHelp.ObjectToString(myObj); 17 //1.2 方式二 18 string myString2 JsonHelp.ToJsonString(myObj); 19 string myString3 JsonHelp.ToJsonString(studentList); 20 Console.WriteLine(myString1); 21 Console.WriteLine(myString2); 22 //2. 将JSON字符串转换成JSON对象必须显式的声明对象 23 ListStudent myList JsonHelp.StringToObjectListStudent(myString3); 24 Console.WriteLine(myList); 三. 加密和解密 这里介绍三种加密方式分别是 (1). MD5不可逆加密加密后可以是16位也可以是32位任何语言的MD5加密后的结果都相同。 (2). DES可逆对称加密 优点对称加密算法的优点是速度快。 缺点密钥管理不方便要求共享密钥。 特点不同写法对应的加密值不同。 (3). RSA可逆非对称加密:           特点可逆非对称加密需要两个Key,公钥和私钥每次产生的公钥和私钥不一致加密的结果就不一致 好处非对称加密算法的优点是密钥管理很方便缺点是速度慢。 特性(重点)需要通过代码来生成一对公钥加密key和私钥解密key,公钥私钥只与是否公开有关。 A. 如果公开公钥加密key只有我接受加密信息才有用因为只有我有私钥解密key能解密。 B. 如果公开私钥解密key用于签名表示加密数据一定是我发的因为只有公钥加密key。 1. 下面分享两种MD5实现的算法 /// summary/// MD5加密,和动网上的16/32位MD5加密结果相同,/// 使用的UTF8编码/// /summary/// param namestrSource待加密字串/param/// param namelength16或32值之一,其它则采用.net默认MD5加密算法/param/// returns加密后的字串/returnspublic static string Encrypt(string source, int length 32)//默认参数{HashAlgorithm provider CryptoConfig.CreateFromName(MD5) as HashAlgorithm;if (string.IsNullOrEmpty(source)) return string.Empty;byte[] bytes Encoding.UTF8.GetBytes(source);// Encoding.ASCII.GetBytes(source);byte[] hashValue provider.ComputeHash(bytes);StringBuilder sb new StringBuilder();switch (length){case 16://16位密文是32位密文的9到24位字符for (int i 4; i 12; i)sb.Append(hashValue[i].ToString(x2));break;case 32:for (int i 0; i 16; i){sb.Append(hashValue[i].ToString(x2));}break;default:for (int i 0; i hashValue.Length; i){sb.Append(hashValue[i].ToString(x2));}break;}return sb.ToString();} /// summary/// MD5加密/// /summary/// param namestr要加密的字符串/param/// returns加密后的字符串/returnspublic static string Md5(string str){var md5 MD5.Create();// 计算字符串的散列值var bytes md5.ComputeHash(Encoding.UTF8.GetBytes(str));var sbd new StringBuilder();foreach (var item in bytes){sbd.Append(item.ToString(x2));}return sbd.ToString();} 2. 下面分享两种DES实现的算法 1 public class DesEncrypt2 {3 //8位长度4 private static string KEY ypf12345;5 private static byte[] rgbKey ASCIIEncoding.ASCII.GetBytes(KEY.Substring(0, 8));6 private static byte[] rgbIV ASCIIEncoding.ASCII.GetBytes(KEY.Insert(0, w).Substring(0, 8));7 8 #region 01-DES加密9 /// summary 10 /// DES 加密 11 /// /summary 12 /// param namestrValue需要加密的字符串/param 13 /// returns/returns 14 public static string Encrypt(string strValue) 15 { 16 DESCryptoServiceProvider dsp new DESCryptoServiceProvider(); 17 using (MemoryStream memStream new MemoryStream()) 18 { 19 CryptoStream crypStream new CryptoStream(memStream, dsp.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write); 20 StreamWriter sWriter new StreamWriter(crypStream); 21 sWriter.Write(strValue); 22 sWriter.Flush(); 23 crypStream.FlushFinalBlock(); 24 memStream.Flush(); 25 return Convert.ToBase64String(memStream.GetBuffer(), 0, (int)memStream.Length); 26 } 27 } 28 #endregion 29 30 #region 02-DES解密 31 /// summary 32 /// DES解密 33 /// /summary 34 /// param nameEncValue加密后的结果/param 35 /// returns/returns 36 public static string Decrypt(string EncValue) 37 { 38 DESCryptoServiceProvider dsp new DESCryptoServiceProvider(); 39 byte[] buffer Convert.FromBase64String(EncValue); 40 41 using (MemoryStream memStream new MemoryStream()) 42 { 43 CryptoStream crypStream new CryptoStream(memStream, dsp.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write); 44 crypStream.Write(buffer, 0, buffer.Length); 45 crypStream.FlushFinalBlock(); 46 return ASCIIEncoding.UTF8.GetString(memStream.ToArray()); 47 } 48 } 49 #endregion 50 } 1 #region 3.DES加密一个字符串(可逆非固定)2 /// summary3 /// 加密一个字符串(可逆非固定)4 /// /summary5 /// param namestr要加密的字符串/param6 /// param namekey加密密钥/param7 /// returns加密后的字符串/returns8 public static string EncryptStr(string str, string key iceStone)9 { 10 var des DES.Create(); 11 // var timestamp DateTime.Now.ToString(HHmmssfff); 12 var inputBytes Encoding.UTF8.GetBytes(MixUp(str)); 13 var keyBytes Encoding.UTF8.GetBytes(key); 14 SHA1 ha new SHA1Managed(); 15 var hb ha.ComputeHash(keyBytes); 16 var sKey new byte[8]; 17 var sIv new byte[8]; 18 for (var i 0; i 8; i) 19 sKey[i] hb[i]; 20 for (var i 8; i 16; i) 21 sIv[i - 8] hb[i]; 22 des.Key sKey; 23 des.IV sIv; 24 using (var ms new MemoryStream()) 25 { 26 using (var cs new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write)) 27 { 28 cs.Write(inputBytes, 0, inputBytes.Length); 29 cs.FlushFinalBlock(); 30 var ret new StringBuilder(); 31 foreach (var b in ms.ToArray()) 32 { 33 ret.AppendFormat({0:X2}, b); 34 } 35 36 return ret.ToString(); 37 } 38 } 39 } 40 #endregion 41 42 #region 4.DES解密一个字符串 43 /// summary 44 /// 解密一个字符串 45 /// param namestr要解密的字符串/param 46 /// param namekey加密密钥/param 47 /// returns解密后的字符串/returns 48 public static string DecryptStr(string str, string key iceStone) 49 { 50 var des DES.Create(); 51 var inputBytes new byte[str.Length / 2]; 52 for (var x 0; x str.Length / 2; x) 53 { 54 inputBytes[x] (byte)System.Convert.ToInt32(str.Substring(x * 2, 2), 16); 55 } 56 var keyByteArray Encoding.UTF8.GetBytes(key); 57 var ha new SHA1Managed(); 58 var hb ha.ComputeHash(keyByteArray); 59 var sKey new byte[8]; 60 var sIv new byte[8]; 61 for (var i 0; i 8; i) 62 sKey[i] hb[i]; 63 for (var i 8; i 16; i) 64 sIv[i - 8] hb[i]; 65 des.Key sKey; 66 des.IV sIv; 67 using (var ms new MemoryStream()) 68 { 69 using (var cs new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write)) 70 { 71 cs.Write(inputBytes, 0, inputBytes.Length); 72 cs.FlushFinalBlock(); 73 return ClearUp(Encoding.UTF8.GetString(ms.ToArray())); 74 } 75 } 76 } 77 #endregion 3. 下面分享RSA的代码 1 public class RsaEncrypt2 {3 4 #region 01-生成公钥和私钥5 /// summary6 /// 生成公钥和私钥7 /// /summary8 /// returns/returns9 public static KeyValuePairstring, string GetKeyPair() 10 { 11 RSACryptoServiceProvider RSA new RSACryptoServiceProvider(); 12 string publicKey RSA.ToXmlString(false); 13 string privateKey RSA.ToXmlString(true); 14 return new KeyValuePairstring, string(publicKey, privateKey); 15 } 16 #endregion 17 18 #region 02-加密(传入内容和公钥) 19 /// summary 20 /// 加密内容公钥,事先需要生成公钥和私钥 21 /// /summary 22 /// param namecontent加密内容/param 23 /// param namepublicKey公钥/param 24 /// returns/returns 25 public static string Encrypt(string content, string publicKey) 26 { 27 RSACryptoServiceProvider rsa new RSACryptoServiceProvider(); 28 rsa.FromXmlString(publicKey); 29 UnicodeEncoding ByteConverter new UnicodeEncoding(); 30 byte[] DataToEncrypt ByteConverter.GetBytes(content); 31 byte[] resultBytes rsa.Encrypt(DataToEncrypt, false); 32 return Convert.ToBase64String(resultBytes); 33 } 34 #endregion 35 36 #region 03-加密(并返回公钥和私钥) 37 /// summary 38 /// 加密(并返回公钥和私钥),在该方法中生成了公钥和私钥并返回 39 /// /summary 40 /// param namecontent加密内容/param 41 /// param namepublicKey返还公钥/param 42 /// param nameprivateKey返回密钥/param 43 /// returns加密后结果/returns 44 public static string Encrypt(string content, out string publicKey, out string privateKey) 45 { 46 RSACryptoServiceProvider rsaProvider new RSACryptoServiceProvider(); 47 publicKey rsaProvider.ToXmlString(false); 48 privateKey rsaProvider.ToXmlString(true); 49 UnicodeEncoding ByteConverter new UnicodeEncoding(); 50 byte[] DataToEncrypt ByteConverter.GetBytes(content); 51 byte[] resultBytes rsaProvider.Encrypt(DataToEncrypt, false); 52 return Convert.ToBase64String(resultBytes); 53 } 54 #endregion 55 56 #region 04-解密(内容私钥) 57 /// summary 58 /// 解密-内容私钥 59 /// /summary 60 /// param namecontent/param 61 /// param nameprivateKey/param 62 /// returns/returns 63 public static string Decrypt(string content, string privateKey) 64 { 65 byte[] dataToDecrypt Convert.FromBase64String(content); 66 RSACryptoServiceProvider RSA new RSACryptoServiceProvider(); 67 RSA.FromXmlString(privateKey); 68 byte[] resultBytes RSA.Decrypt(dataToDecrypt, false); 69 UnicodeEncoding ByteConverter new UnicodeEncoding(); 70 return ByteConverter.GetString(resultBytes); 71 } 72 #endregion 73 } 4. 分享加密算法的调用代码 1 {2 Console.WriteLine(-------------------------------------三.3种加密方式------------------------------------------);3 {4 Console.WriteLine(----------------------1.MD5加密(加密后结果可以是32位,也可以是16位,主流都采用32位)-----------------------------);5 //1.MD5加密(加密后结果可以是32位,也可以是16位,主流都采用32位)6 //1.1 写法一7 string msg1 mr1;8 string result1 MD5Encrypt.Encrypt(msg1);9 string result2 MD5Encrypt.Encrypt(msg1, 16); 10 Console.WriteLine(result1); 11 Console.WriteLine(result2); 12 //1.2 写法二 .Net 高度封装的MD5方法 13 string result3 SecurityHelp.Md5(msg1); 14 Console.WriteLine(result3); 15 } 16 { 17 Console.WriteLine(----------------------2.对称可逆加密算法DES-----------------------------); 18 //2.对称加密算法DES 19 string msg1 mr1; 20 //2.1 写法一密钥写在DesEncrypt类中了密钥为ypf12345 21 string result1 DesEncrypt.Encrypt(msg1); 22 string result2 DesEncrypt.Decrypt(result1); 23 Console.WriteLine(result1); 24 Console.WriteLine(result2); 25 //2.2 写法二 26 string result3 SecurityHelp.EncryptStr(msg1, ypf12345); 27 string result4 SecurityHelp.DecryptStr(result3, ypf12345); 28 Console.WriteLine(result3); 29 Console.WriteLine(result4); 30 } 31 { 32 Console.WriteLine(----------------------3.非对称可逆加密算法RSA-----------------------------); 33 //方式一先生成公钥和私钥,然后加密和解密 34 //KeyValuePair是一个键值对, myKey.Key 代表的公钥myKey.Value 代表的私钥 35 KeyValuePairstring, string myKey RsaEncrypt.GetKeyPair(); 36 string msg1 mr1; 37 //加密 38 string result1 RsaEncrypt.Encrypt(msg1, myKey.Key); 39 //解密 40 string result2 RsaEncrypt.Decrypt(result1, myKey.Value); 41 Console.WriteLine(result1); 42 Console.WriteLine(result2); 43 //方式二直接加密并通过out参数的形式返回公钥和私钥 44 string publicKey ; 45 string privateKey ; 46 //加密 47 string result3 RsaEncrypt.Encrypt(msg1, out publicKey, out privateKey); 48 //解密 49 string result4 RsaEncrypt.Decrypt(result3, privateKey); 50 Console.WriteLine(result3); 51 Console.WriteLine(result4); 52 } 53 54 } 运行结果
http://www.huolong8.cn/news/235774/

相关文章:

  • 成都公司网页制作服务电话seo网址
  • 网站建设厘金手指排名二二长沙建设工程信息网
  • 网页图成都网站排名 生客seo怎么样
  • 广州网站改版腾讯企业邮箱注册申请
  • 上海p2p网站建设自建团队网站开发要多少钱
  • 用vs做购物网站代码wordpress google字体本地
  • 一个空间可以放两个网站吗网站制作优化推广
  • 学校的网站建设费如何入账管理网站开发教程
  • 爱站网站长seo综合查询工具设置网站语言
  • 南京网站设计是什么在浴室里做的网站
  • 网站开发网页前置开发市桥做网站
  • 以营销为导向的网站建设免费商标图案logo
  • 如何做网站推广自己的产品哪个网站可以做竖屏
  • 北京网站建设的价格天人人车网站建设
  • 淮安设计网站网站首页模块如何做链接
  • 怎样做公司的网站建设哪个公司的企业邮箱好
  • 赤峰是住房和城乡建设局网站Django和wordpress速度
  • 新站网站推广公司开发公司需要什么资质
  • 网站建设方案设计ppt婚纱摄影网站模板之家
  • 江苏 网站 备案百度指数 网站
  • 今科网站建设公司注册邮箱免费注册
  • 扬州公司做网站腾讯云服务器可以做网站
  • 手机如何做微商城网站设计济南手机端建站模板
  • 支持支付宝登录的网站建设泰安网红人物
  • 深圳协会网站建设wordpress首页出现恶意链接
  • php做不了大型网站淄博seo外包公司
  • 常州建设网站公司提供常州微信网站建设
  • 桐城市美好乡村建设办公室网站什么是企业网站pv
  • 网站用户引导专门做女频的小说网站
  • 如何在微信内做网站网站建设财务分析