首页
归档
留言
广告合作
友链
美女主播
Search
1
博瑞GE车机升级/降级
5,146 阅读
2
Mac打印机设置黑白打印
4,517 阅读
3
修改elementUI中el-table树形结构图标
4,516 阅读
4
Mac客户端添加腾讯企业邮箱方法
4,351 阅读
5
intelliJ Idea 2022.2.X破解
4,060 阅读
Java
HarmonyOS Next
Web前端
微信开发
开发辅助
App开发
数据库
随笔日记
登录
/
注册
Search
标签搜索
Spring Boot
Java
Spring Cloud
Mac
mybatis
WordPress
Nacos
Spring Cloud Alibaba
Mybatis-Plus
jQuery
Java Script
asp.net
微信小程序
Sentinel
UniApp
MySQL
asp.net core
IntelliJ IDEA
Jpa
树莓派
Laughing
累计撰写
570
篇文章
累计收到
1,424
条评论
首页
栏目
Java
HarmonyOS Next
Web前端
微信开发
开发辅助
App开发
数据库
随笔日记
页面
归档
留言
广告合作
友链
美女主播
搜索到
6
篇与
的结果
2018-01-18
JavaScript结合.Net实现base64加、解密
主要解决问题,客户端通过utf8进行base64加密后,将加密后的信息传送到服务端,服务端对加密后的信息进行解密,获取明文。JavaScript加密、解密代码function Base64() { // private property _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/="; // public method for encoding this.encode = function (input) { var output = ""; var chr1, chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; input = _utf8_encode(input); while (i < input.length) { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) { enc3 = enc4 = 64; } else if (isNaN(chr3)) { enc4 = 64; } output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4); } return output; } // public method for decoding this.decode = function (input) { var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (i < input.length) { enc1 = _keyStr.indexOf(input.charAt(i++)); enc2 = _keyStr.indexOf(input.charAt(i++)); enc3 = _keyStr.indexOf(input.charAt(i++)); enc4 = _keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) { output = output + String.fromCharCode(chr2); } if (enc4 != 64) { output = output + String.fromCharCode(chr3); } } output = _utf8_decode(output); return output; } // private method for UTF-8 encoding _utf8_encode = function (string) { string = string.replace(/\r\n/g, "\n"); var utftext = ""; for (var n = 0; n < string.length; n++) { var c = string.charCodeAt(n); if (c < 128) { utftext += String.fromCharCode(c); } else if ((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); } } return utftext; } // private method for UTF-8 decoding _utf8_decode = function (utftext) { var string = ""; var i = 0; var c = c1 = c2 = 0; while (i < utftext.length) { c = utftext.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if ((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i + 1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i + 1); c3 = utftext.charCodeAt(i + 2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; } }通过Ajax将密文传送到服务端,服务端对密文进行解密.net代码#region 5.0 Base64加密 需指定编码 +static string Base64Encrypt(string source, Encoding encode) /// <summary> /// 5.0 Base64加密 需指定编码 /// </summary> /// <param name="strData"></param> /// <param name="encod"></param> /// <returns></returns> public static string Base64EncryptByEncode(string source, Encoding encode) { return Convert.ToBase64String(encode.GetBytes(source)); } #endregion #region 5.1 Base64解密 需指定编码 +static string Base64Decrypt(string source, Encoding encode) /// <summary> /// 5.1 Base64加密 需指定编码 /// </summary> /// <param name="strData"></param> /// <param name="encod"></param> /// <returns></returns> public static string Base64DecryptByEncode(string source, Encoding encode) { return encode.GetString(Convert.FromBase64String(source)); } #endregion #region 5.2 Base64加密 (默认UTF8编码)+static string Base64Encrypt(string source) /// <summary> /// 5.2 Base64加密 /// </summary> /// <param name="strData"></param> /// <returns></returns> public static string Base64Encrypt(string source) { return Convert.ToBase64String(Encoding.UTF8.GetBytes(source)); } #endregion #region 5.3 Base64解密 +static string Base64Decrypt(string source) /// <summary> /// 5.3 Base64加密(默认UTF8编码) /// </summary> /// <param name="strData"></param> /// <param name="encod"></param> /// <returns></returns> public static string Base64Decrypt(string source) { return Encoding.UTF8.GetString(Convert.FromBase64String(source)); } #endregion
2018年01月18日
1,300 阅读
0 评论
0 点赞
2017-07-18
使用Linq判断DataTable数据是否重复
我们一般系统在导入数据的时候,一般都是通过NPOI将excel数据转换成DataTable,然后将DataTable导入到数据库。在数据导入的过程中,其实很重要的一部就是检查DataTable中的数据是否有重复的,如果存在重复的,我们需要识别出重复的数据。在.net中,我们通过Rows属性的cast()方法,可以很方便的过滤出重复的数据,下面的代码即可实现var query = from e in dt.Rows.Cast<DataRow>() group e by new { sapCode = e.Field<string>("SAPComCode"), sapsupplierCode = e.Field<string>("SapSupplierCode") } into g select new { sapComCode = g.Key, count = g.Count() }; var items = query.Where(A => A.count > 1); if (items.Count() > 0)//存在重复数据 { string SameSapComCode = string.Empty; foreach (var item in items) { SameSapComCode += item.sapComCode + ";"; } SameSapComCode = SameSapComCode.TrimEnd(';'); result.Data = "以下SAP公司编号的数据存在重复,请检查后重新导入<br/>" + SameSapComCode; return result; }
2017年07月18日
1,258 阅读
0 评论
0 点赞
2017-06-30
C#操作AD域之测试域连接
C#操作域的第一步便是测试程序是否能成功连接到域,通过LDAP协议,可以非常简单的测试域连接的情况。代码如下/// </summary> /// <param name="domainName">域名或IP</param> /// <param name="userName">用户名</param> /// <param name="userPwd">密码</param> /// <param name="entry">域</param> /// <returns></returns> public string IsConnect(string domainName, string userName, string userPwd, out DirectoryEntry domain) { domain = new DirectoryEntry(); try { domain.Path = string.Format("LDAP://{0}", domainName);//LDAP是轻量目录访问协议 domain.Username = userName; domain.Password = userPwd; domain.AuthenticationType = AuthenticationTypes.Secure;//身份验证的类型 domain.RefreshCache();//将此DirectoryEntry 对象的属性值加载到属性缓存中 return "测试连接成功!"; } catch (Exception ex) { return "[IsConnected方法]错误信息:" + ex.Message; } }
2017年06月30日
1,544 阅读
1 评论
1 点赞
2017-06-30
WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
症状WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping。请添加一个名为 jquery (区分大小写)的 ScriptResourceMapping。解决办法在webconfig中找到<appSettings> <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> <add key="ValidationSettings:UnobtrusiveValidationMode" value="WebForms" /> </appSettings> 删除即可。在网站根目录下新建一scripts文件夹,向里边添加jquery-1.7.2.min.js和jquery-1.7.2.js(可根据自己需要使用不同的版本),在根目录下添加全局应用程序类Global.asax文件,在Application_Start事件中添加如下代码:ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition { Path = "~/scripts/jquery-1.7.2.min.js", DebugPath = "~/scripts/jquery-1.7.2.js", CdnPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.2.min.js", CdnDebugPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.2.js" });
2017年06月30日
1,221 阅读
0 评论
0 点赞
2017-06-30
meta标签属性
meta标签meta是html语言head区的一个辅助性标签。几乎所有的网页里,我们可以看到类似下面这段的html代码:<head> <meta http-equiv="content-Type" content="text/html; charset=gb2312"> </head>也许你认为这些代码可有可无。其实如果你能够用好meta标签,会给你带来意想不到的效果,例如加入关键字会自动被大型搜索网站自动搜集;可以设定页面格式及刷新等等。meta标签的组成meta标签共有两个属性,它们分别是http-equiv属性和name属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。name属性name属性主要用于描述网页,与之对应的属性值为content,content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的。meta标签的name属性语法格式是:<meta name="参数" content="具体的参数值"> 其中name属性主要有以下几种参数:A、Keywords(关键字)说明:keywords用来告诉搜索引擎你网页的关键字是什么。举例:<meta name ="keywords" content="science, education,culture,politics,ecnomics,relationships, entertaiment, human"> B、description(网站内容描述)说明:description用来告诉搜索引擎你的网站主要内容。举例:<meta name="description" content="This page is about the meaning of science, education,culture.">C、robots(机器人向导)说明:robots用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引。content的参数有all,none,index,noindex,follow,nofollow。默认是all。举例:<meta name="robots" content="none">D、author(作者)说明:标注网页的作者举例:<meta name="author" content="root,root@21cn.com">http-equiv属性http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变量值。meta标签的http-equiv属性语法格式是:<meta http-equiv="参数" content="参数变量值">;其中http-equiv属性主要有以下几种参数:A、Expires(期限)说明:可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新传输。用法:<meta http-equiv="expires" content="Fri, 12 Jan 2001 18:18:18 GMT">注意:必须使用GMT的时间格式。B、Pragma(cache模式)说明:禁止浏览器从本地计算机的缓存中访问页面内容。用法:<meta http-equiv="Pragma" content="no-cache">注意:这样设定,访问者将无法脱机浏览。C、Refresh(刷新)说明:自动刷新并指向新页面。用法:<meta http-equiv="Refresh" content="2;URL=http://www.root.net">(注意后面的引号,分别在秒数的前面和网址的后面)注意:其中的2是指停留2秒钟后自动刷新到URL网址。D、Set-Cookie(cookie设定)说明:如果网页过期,那么存盘的cookie将被删除。用法:<meta http-equiv="Set-Cookie" content="cookievalue=xxx; expires=Friday, 12-Jan-2001 18:18:18 GMT; path=/">注意:必须使用GMT的时间格式。E、Window-target(显示窗口的设定)说明:强制页面在当前窗口以独立页面显示。用法:<meta http-equiv="Window-target" content="_top">注意:用来防止别人在框架里调用自己的页面。F、content-Type(显示字符集的设定)说明:设定页面使用的字符集。用法:<meta http-equiv="content-Type" content="text/html; charset=gb2312">G、content-Language(显示语言的设定)用法:<meta http-equiv="Content-Language" content="zh-cn" />meta标签的功能帮助主页被各大搜索引擎登录;定义页面的使用语言自动刷新并指向新的页面实现网页转换时的动画效果控制页面缓冲控制网页显示的窗口
2017年06月30日
1,357 阅读
0 评论
1 点赞
2017-06-30
GUID转换成16位字符串或19位数字并确保唯一
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string str = GuidTo16String(); Console.WriteLine(str); Console.WriteLine(str.Length); Console.Read(); } public static string GuidTo16String() { long i = 1; foreach (byte b in Guid.NewGuid().ToByteArray()) i *= ((int)b + 1); return string.Format("{0:x}", i - DateTime.Now.Ticks); } /// <summary> /// 根据GUID获取19位的唯一数字序列 /// </summary> /// <returns></returns> public static long GuidToLongID() { byte[] buffer = Guid.NewGuid().ToByteArray(); return BitConverter.ToInt64(buffer, 0); } } }
2017年06月30日
1,359 阅读
0 评论
0 点赞