生成缩略图
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
/// <summary> /// 生成缩略图 /// </summary> /// <param name="imgPath">源图片路径</param> /// <param name="thumbnailPath">缩略图保存路径</param> /// <param name="newWidth">新宽度</param> /// <param name="newHeight">新高度</param> /// <param name="addSpace">是否添加空白</param> /// <returns></returns> public static void Thumbnail(string imgPath, string thumbnailPath, int newWidth, int newHeight, bool addSpace) { int sW, sH; // 按比例缩放 var imgSource = Image.FromFile(imgPath); var sWidth = imgSource.Width; var sHeight = imgSource.Height; if (sHeight > newHeight || sWidth > newWidth) { if ((sWidth * newHeight) > (sHeight * newWidth)) { sW = newWidth; sH = (newWidth * sHeight) / sWidth; } else { sH = newHeight; sW = (sWidth * newHeight) / sHeight; } } else { sW = sWidth; sH = sHeight; } var outBmp = addSpace ? new Bitmap(newWidth, newHeight) : new Bitmap(sW, sH); var x = 0; var y = 0; if (addSpace) { var whRate = newWidth > newHeight ? true : false; //宽是否大于高(新尺寸) x = whRate ? (newWidth - sW) / 2 : x; y = whRate ? (newHeight - sH) / 2 : y; } var g = Graphics.FromImage(outBmp); // 设置画布的描绘质量 g.CompositingQuality = CompositingQuality.HighQuality; g.SmoothingMode = SmoothingMode.HighQuality; g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.DrawImage(imgSource, new Rectangle(x, y, sW, sH), new Rectangle(0, 0, imgSource.Width, imgSource.Height), GraphicsUnit.Pixel); g.Dispose(); try { //保存图片 outBmp.Save(thumbnailPath, ImageFormat.Jpeg); } finally { imgSource.Dispose(); g.Dispose(); outBmp.Dispose(); } } |
Normalize.css
Normalize.css 是一个可以定制的CSS文件,它让不同的浏览器在渲染网页元素的时候形式更统一。 官网:http://necolas.github.io/normalize.css/
View DetailsCSS 框架 Yahoo Pure
Pure 是来自雅虎的 CSS 框架,使用 Normalize.CSS 无需任何 JavaScript 代码。框架基于响应式设计,提供多种样式的组件,包括表格、表单、按钮、表、导航等。标识使用非常简单,整个框架非常轻量级,压缩后只有 5.7k。 官网:http://purecss.io/ 设计器:http://yui.github.io/skinbuilder/?mode=pure
View DetailsPHP中一些通用和易混淆技术点的最佳编程实践
我们使用的是哪个 PHP 版本? 带有 Suhosin-补丁的PHP 5.3.10-1ubuntu3.6, 安装于 Ubuntu 12.04 LTS. PHP如同是网络世界的百年老龟。它的外壳上刻有一个丰富的,令人费解的,粗糙的历史。在一个共享主机的环境下,它的配置可能会限制你能做什么事情。 为了保留一丝明智,我们需要只专注于一个版本的PHP。截至2013年4月30,该版本是 带有Suhosin补丁的PHP5.3.10-1ubuntu3.6 。如果你使用apt-get从一个Ubuntu12.04 LTS服务器来安装PHP的话,你所得到的版本就是这个。换句话说,许多人在默认情况下已经很明智地使用了它。 您可能会发现本文这些解决方案能工作于不同或更旧版本的PHP。如果是这样的话,就要由你来研究在这些旧版本中的细微错误或安全问题的影响了。 保存密码 使用 phpass 库计算密码的哈希值进行比较。 用 phpass 0.3 进行的测试。 散列化是在把用户密码保存进数据库之前对其进行保护的标准方法。许多常见的散列算法,如MD5,乃至SHA1,用于存储密码都是不安全的,因为黑客可以使用这些散列算法轻松破解密码。 要散列化密码最安全的方法是使用bcrypt算法。开源的phpass 库用一个易于使用的类来提供这个功能。 例子: view source print? 01 <?php 02 // 包含phpass库 03 require_once('phpass-0.3/PasswordHash.php'); 04 05 // 初始化散列器为不可移植(这样更安全) 06 $hasher= newPasswordHash(8, false); 07 08 // 计算密码哈希值。$hashedPassword 将会是一长为60个字符的字符串. 09 $hashedPassword= $hasher->HashPassword('my super cool password'); 10 11 // 你现在可以安全地保存$hashedPassword到数据库中! 12 13 // 通过比较用户输入内容(产生的哈希值)和我们之前计算出的哈希值,来判断用户是否输入了正确的密码 14 $hasher->CheckPassword('the wrong password', $hashedPassword); // 返回假 15 16 $hasher->CheckPassword('my super cool password', $hashedPassword); // 返回真 17 ?> 陷阱 很多来源会建议你在计算密码的哈希值之前先给密码加点“作料”。这是个好主意,phpass已经利用HashPassword() 函数中的一部分代码来为你给密码加了作料。 这就意味着你并不需要自己再亲自做这个了。 进一步阅读 […]
View DetailsCSS制作框架 Sass
Sass 扩展了 CSS3,增加了规则、变量、混入、选择器、继承等等特性。Sass 生成良好格式化的 CSS 代码,易于组织和维护。 官网:http://sass-lang.com/
View Details10个SQL注入工具
众所周知,SQL注入攻击是最为常见的Web应用程序攻击技术。同时SQL注入攻击所带来的安全破坏也是不可弥补的。以下罗列的10款SQL注入工具可帮助管理员及时检测存在的漏洞。 BSQL Hacker 10个SQL注入工具 BSQL Hacker是由Portcullis实验室开发的,BSQL Hacker 是一个SQL自动注入工具(支持SQL盲注),其设计的目的是希望能对任何的数据库进行SQL溢出注入。 BSQL Hacker的适用群体是那些对注入有经验的使用者和那些想进行自动SQL注入的人群。BSQL Hacker可自动对Oracle和MySQL数据库进行攻击,并自动提取数据库的数据和架构。 The Mole 10个SQL注入工具 The Mole是一款开源的自动化SQL注入工具,其可绕过IPS/IDS(入侵防御系统/入侵检测系统)。只需提供一个URL和一个可用的关键字,它就能够检测注入点并利用。The Mole可以使用union注入技术和基于逻辑查询的注入技术。The Mole攻击范围包括SQL Server、MySQL、Postgres和Oracle数据库。 Pangolin 10个SQL注入工具 Pangolin是一款帮助渗透测试人员进行SQL注入(SQL Injeciton)测试的安全工具。Pangolin与JSky(Web应用安全漏洞扫描器、Web应用安全评估工具)都是NOSEC公司的产品。Pangolin具备友好的图形界面以及支持测试几乎所有数据库(Access、MSSql、MySql、Oracle、Informix、DB2、Sybase、PostgreSQL、Sqlite)。Pangolin能够通过一系列非常简单的操作,达到最大化的攻击测试效果。它从检测注入开始到最后控制目标系统都给出了测试步骤。Pangolin是目前国内使用率最高的SQL注入测试的安全软件。 Sqlmap 10个SQL注入工具 Sqlmap是一个自动SQL 注入工具。其可胜任执行一个广泛的数据库管理系统后端指纹, 检索DBMS数据库、usernames、表格、列、并列举整个DBMS信息。Sqlmap提供转储数据库表以及MySQL、PostgreSQL、SQL Server服务器下载或上传任何文件并执行任意代码的能力。 Havij 10个SQL注入工具 Havij是一款自动化的SQL注入工具,它能够帮助渗透测试人员发现和利用Web应用程序的SQL注入漏洞。Havij不仅能够自动挖掘可利用的SQL 查询,还能够识别后台数据库类型、检索数据的用户名和密码hash、转储表和列、从数据库中提取数据,甚至访问底层文件系统和执行系统命令,当然前提是有 一个可利用的SQL注入漏洞。Havij支持广泛的数据库系统,如 MsSQL, MySQL, MSAccess and Oracle。 Havij支持参数配置以躲避IDS,支持代理,后台登陆地址扫描。 Enema SQLi 10个SQL注入工具 Enema SQLi与其他 SQL注入工具不同的是,Enema SQLi不是自动的,想要使用Enema SQLi需要一定的相关知识。Enema SQLi能够使用用户自定义的查询以及插件对SQL Server和MySQL数据库进行攻击。支持基于error-based、Union-based和blind time-based的注入攻击。 SQLninja 10个SQL注入工具 SQLninja软件用Perl编写,符合GPLv2标准。SQLninja的目的是利用Web应用程序中的SQL注入式漏洞,它依靠微软的SQL Server作为后端支持。其主要的目标是在存在着漏洞的数据库服务器上提供一个远程的外壳,甚至在一个有着严格的防范措施的环境中也能如此。在一个SQL注入式漏洞被发现以后,企业的管理员特别是渗透攻击的测试人员应当使用它,它能自动地接管数据库服务器。现在市场上有许多其它的SQL注入式漏洞工具,但SQLninja与其它工具不同,它无需抽取数据,而着重于在远程数据库服务器上获得一个交互式的外壳,并将它用作目标网络中的一个立足点。 sqlsus 10个SQL注入工具 sqlsus是一个开放源代码的MySQL注入和接管工具,sqlsus使用perl编写并基于命令行界面。sqlsus可以获取数据库结构,注入你自己的SQL语句,从服务器下载文件,爬行web站点可写目录,上传和控制后门,克隆数据库等。 Safe3 SQL Injector 10个SQL注入工具 Safe3 SQL Injector是一个最强大和最易使用的渗透测试工具,它可以自动检测和利用SQL注入漏洞和数据库服务器的过程中。Safe3 SQL Injector具备读取MySQL、Oracle、PostgreSQL、SQL Server、Access、SQLite、Firebird、Sybase、SAP MaxDB等数据库的能力。同时支持向MySQL、SQL Server写入文件,以及SQL Server和Oracle中执行任意命令。Safe3 SQL Injector也支持支持基于error-based、Union-based和blind time-based的注入攻击。 SQL Poizon 10个SQL注入工具 SQL Poizon的图形界面使用户无需深厚的专业知识便能够进行攻击,SQL Poizon扫描注入工具内置浏览器可帮助查看注入攻击带来的影响。SQL Poizon充分利用搜索引擎“dorks”扫描互联网中存在SQL注入漏洞的网站。(李智/编辑) 转自:http://blog.jobbole.com/17763/
View DetailsWebSocket
目标 WebSocket 规范的目标是在浏览器中实现和服务器端双向通信。双向通信可以拓展浏览器上的应用类型,例如实时的数据推送(股票行情)、游戏、聊天等. 背景 目前在浏览器中通过http仅能实现单向的通信,comet可以一定程度上模拟双向通信,但效率较低,并需要服务器有较好的支持; flash中的socket和xmlsocket可以实现真正的双向通信,通过 flex ajax bridge,可以在javascript中使用这两项功能. 可以预见,如果websocket一旦在浏览器中得到实现,将会替代上面两项技术,得到广泛的使用.面对这种状况,HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽并达到实时通讯。 原理 WebSocket protocol 是HTML5一种新的协议(protocol)。它是实现了浏览器与服务器全双工通信(full-duplex)。 现在,很多网站为了实现即时通讯(real-time),所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(time interval)(如每1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客服端的浏览器。这种传统的HTTP request d的模式带来很明显的缺点 – 浏览器需要不断的向服务器发出请求(request),然而HTTP request 的header是非常长的,里面包含的数据可能只是一个很小的值,这样会占用很多的带宽。 而最比较新的技术去做轮询的效果是Comet – 用了AJAX。但这种技术虽然可达到全双工通信,但依然需要发出请求(reuqest)。 在 WebSocket API,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。在此WebSocket 协议中,为我们实现即时服务带来了两大好处: 1. Header 互相沟通的Header是很小的-大概只有 2 Bytes 2. Server Push 服务器可以主动传送数据给客户端 握手协议 在实现websocket连线过程中,需要通过浏览器发出websocket连线请求,然后服务器发出回应,这个过程通常称为“握手” (handshaking)。 PS1:握手协议在后期的版本中,会标明版本编号,下面的例子属于早期的协定之一,对于新版的 chrome 和 Firefox 皆不适用。 PS2:后期的版本大多属于功能上的扩充,例如使用第7版的握手协议同样也适用于第8版的握手协议。 例子: 浏览器请求 GET /demo HTTP/1.1 Host: 你的网址.com Connection: Upgrade Sec-WebSocket-Key2: 12998 5 Y3 1 .P00 Sec-WebSocket-Protocol: sample Upgrade: WebSocket Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5 Origin: http://你的网址.com ^n:ds[4U 服务器回应 HTTP/1.1 101 WebSocket Protocol Handshake Upgrade: WebSocket Connection: Upgrade Sec-WebSocket-Origin: http://你的网址.com […]
View Details河南省住房公积金个人账户查询
河南省直住房公积金个人账户查询: 点击进入>>> 你还可以以下方式查询: 为方便省直职工查询住房公积金, 省直机关住房资金管理中心提供了多种方便快捷的查询途径,包括中心柜台查询、印发邮政信函(个人对账单)、95533电话查询、多媒体查询机、建行ATM自动柜员机及公益性住房公积金手机短信查询等多种查询渠道。 现将其查询方法介绍如下: 1、中心柜台查询需本人携带个人身份证和公积金龙卡到省直资金中心一楼业务大厅办理。 2、多媒体查询职工需在中心多媒体机上插公积金龙卡进行实时查询。 3、95533电话查询需拨打95533电话,输入公积金龙卡卡号和查询密码,并按照提示音操作即可。 4、ATM机查询职工需在建行ATM自动柜员机中插入公积金龙卡,输入交易密码即可查询公积金余额和储蓄余额。 5、手机短信查询目前可通过移动公司手机进行查询,免收信息费。查询方法: 1、发送“CZ(或88)+身份证号+空格+密码”到“106573023798” 2、发送“CZ(或88)+龙卡卡号+空格+密码”到“106573023798” 修改密码方法:(初始查询密码为“000000”) 1、发送“XM(或66)+身份证号+空格+旧密码+空格+新密码”到“106573023798” 2、发送“XM(或66)+龙卡卡号+空格+旧密码+空格+新密码”到“106573023798” 业务咨询电话:65909463 65908401 各地市的住房公积金查询请进入本页面的上一级目录,找到并打开该市的公积金查询链接即可查询。 河南省直机关住房资金管理中心 主要负责省直单位职工住房公积金归纳、使用、核算和管理工作。 地址:河南省郑州市经三路6号 邮 编:450007 电 话:0371-65909463 65908401 网址: http://www.hnszgjj.com/ 转自:http://ha.cnpension.net/sbcx/2010-01-04/1019490.html
View DetailsASP
asp已经诞生18年了,是我工作用的第一门语言。 ASP是Active Server Page的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是 .asp。现在常用于各种动态网站中。 发展史 从1996年ASP诞生到2012年已经过去了17年。在这短短的17年中,ASP发生了重大的变化,直到现在的ASP。 asp的第一版是0.9测试版,自从1996年ASP1.0诞生,它给Web开发界带来了福音。早期的Web程序开发是十分繁琐的,以至于要制作一个简单的动态页面需要编写大量的C代码才能完成,这对于普通的程序员来说有点难了。而ASP却允许使用VBScript这种的简单脚本语言,编写嵌入在HTML网页中的代码。在进行程序设计的时候可以使用它的内部组件来实现一些高级功能(例如Cookie)。它的最大的贡献在于它的ADO(ActiveX Data Object),这个组件使得程序对数据库的操作十分简单,所以进行动态网页设计也变成一件轻松的事情。因此一夜之间,Web程序设计不再是想像中的艰巨任务,仿佛很多人都可以一显身手。 到了1998年,微软发布了ASP 2.0。它是Windows NT4 Option Pack的一部分,作为IIS(Internet Information Services,互联网信息服务) 4.0的外接式附件。它与ASP 1.0的主要区别在于它的外部组件是可以初始化的,这样,在ASP程序内部的所有组件都有了独立的内存空间,并可以进行事务处理。 到了2000年,随着Windows 2000的成功发布,这个操作系统的IIS(Internet Information Services,互联网信息服务) 5.0所附带的ASP 3.0也开始流行。与ASP 2.0相比,ASP 3.0的优势在于它使用了COM+,因而其效率会比它前面的版本要好,并且更稳定。 2001年,ASP·NET出现了。在刚开始开发的时候,它的名字是ASP+,但是,为了与微软的·NET计划相匹配,并且要表明这个ASP版本并不是对ASP 3.0的补充,微软将其命名为ASP·NET。ASP·NET在结构上与前面的版本大相径庭,它几乎完全是基于组件和模块化的,Web应用程序的开发人员使用这个开发环境可以实现更加模块化的、功能更强大的应用程序。 网页特点ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。与HTML相比,ASP网页具有以下特点:⑴利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术;⑵ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试;⑶服务器上的ASP解释程序会在服务器端执行ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页;⑷ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息;⑸ASP可以使用服务器端ActiveX组件来执行各种各样的任务,例如存取数据库、发送Email或访问文件系统等;⑹由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可防止ASP程序代码被窃取;⑺ 方便连接ACCESS与SQL数据库;⑻开发需要有丰富的经验,否则会留出漏洞,让骇客(cracker)利用进行注入攻击。ASP也不仅仅局限于与HTML结合制作WEB网站,而且还可以与XHTML和WML语言结合制作WAP手机网站。但是其原理也是一样的。 工作原理当在Web站点中融入ASP功能后,将发生以下事情:1、用户向浏览器地址栏输入网址,默认页面的扩展名是.asp。2、浏览器向服务器发出请求。3、服务器引擎开始运行ASP程序。4、ASP文件按照从上到下的顺序开始处理,执行脚本命令,执行HTML页面内容。5、页面信息发送到浏览器。 生成txtFileName = "idcpcw.txt" '要保存的文本文件名Set fso = CreateObject("Scripting.FileSystemObject") '建立fso对象Set MyFile = fso.CreateTextFile(Server.mapPath(TxtFileName), True) '建立对象MyFile.WriteLine "文本的内容" & uuu '将name的值写入文本文件,uuu为数据库的数据MyFile.WriteLine "文本的内容" & uuu '同上[1]
View Details农村母亲在供养城市母亲吗?
导 语 某种意义上来说,目前的养老金制度下,农村老人的子女在供养城市的老人养老,尤其是在政府或事业单位领域养老金的老人,或者说是农村目前在供养城市母亲。因此,提高农民养老金领取范围和提高领取金额应成为养老金改革重中之重。 网易财经中心张达 北京大学今日公布的《中国健康与养老追踪调查》,结果显示,城乡老年人之间领取养老金差距非常大,体现在覆盖率和领取金额上。 养老保险的覆盖率在城镇户口中为83.6%,农村户口中为43.1%。在养老金领取金额上,农村养老保险养老金中位数为每年720元,企业职工养老保险养老金中位数为每年18000元,政府或事业机构养老保险养老金中位数为每年24000元。即公务员的养老金为农民的33.33倍。 综合收入情况看,农民养老金占家庭支出的比例为20%,而政府、事业单位和企业所提供的养老金分别占了人均支出的244%和192%。也就是说,农民领取的每个月60元的养老金全部花出去,才只占总支出的20%。而公务员等领取养老金是日常花费的2倍多。 农村老年人养老金发放非常之低,而这些老年人的子女多在城市工作(约有59%的老年人子女或子女配偶不在家共同居住外出打工)。调查项目负责人赵耀辉指出这些农民老人的子女在城市工作上缴的社会保障费用中公司所出部分(约20%)为统筹资金,而这些资金大部分用于城镇老人养老金的发送,农村老人受益很少。 某种意义上来说,这相当于农村老人的子女在供养城市的老人养老,尤其是在政府或事业单位领域养老金的老人,或者说是农村目前在供养城市母亲。因此,提高农民养老金领取范围和提高领取金额应成为养老金改革重中之重。 转自:http://money.163.com/13/0531/18/907MR4MB00254LAG.html
View Details