首页 文章 精选 留言 我的

精选列表

搜索[学习],共10000篇文章
优秀的个人博客,低调大师

kali linux 网络渗透测试学习笔记(三)社会工程学之Java攻击:钓鱼网站制作

一.进入kali linux系统的命令行模式 输入代码; ifconfig 查看获得本机IP地址为:192.168.43.227 然后输入代码: setoolkit 出现以下界面: 在set后输入1. 二.开始重复输入数字代号 三.写入钓鱼网站的目标 正如下图所示,我们需要先输入本机的IP地址以及端口,之后输入钓鱼网站的网址,这里我们以百度为例,因此输入https://www.baidu.com。等待蓝色的字体出现完就说明网站已经克隆完毕了。 四.在浏览器里输入克隆网址地址 出现以下界面; 钓鱼网站克隆成功,所有用户进行搜索的信息都会记录在您的电脑之内了。从而可以进行大数据分析等操作,有的人则用于不法用途,比如QQ空间输入密码盗号等。

优秀的个人博客,低调大师

Python学习笔记 (2.2)Python中的字符编码问题及标准数据类型之String(字符串)

Python3中的String类型 首先,Python中没有字符类型,只有字符串类型。单个字符按照长度为1的字符串处理,这对于曾是OIER的我来说有点不适应啊。 字符串的表示方法 最常用的就是用一对双引号或一对单引号把一串字符括起来,像这样'Hello world!'或"Hello world!"。这两种表示方法可以说完全一样,没啥区别。这两种完全一样的东西存在的目的貌似只有一个,如果字符串中含有一个单引号,就要用双引号括起来,避免单引号匹配不起来,像这样"I'm fine."而不是这样'I'm fine.',可以看到,第二种情况下,解释器就无法正确识别我们想要的字符串。再加一个相似的例子:'"Why," he said.'和""Why," he said." 字符编码 参考资料:字符串和编码-廖雪峰的官方网站 众所周知,计算机要处理字符,是通过字符编码。美国人发明了计算机,然后制定了由一个字节表示一个字符的ASCII编码,只有英文字母、数字、标点和一些控制字符,总共127个。 但是这对其他语言来说就很不友好,因为放不下自己语言的字啊。于是各国都制定了自己的编码标准,比如中国的GB2312(国标2312)、GBK(国标扩),日本的Shift_JIS,等等。各国标准不同,就会出现冲突(乱码)。 于是就产生了国际通用的编码标准Unicode(点我看Unicode),发展到如今,大多数由两个字节表示一个字,也有要4个字节的。它包括了全世界差不多所有字符。至于原来就在ASCII中的字符,在编码前面补零就好。 但由于“补零”的存在,如果大部分是英文,Unicode储存时要耗费差不多两倍空间,于是储存时由Unicode转换为可变长编码的UTF-8以节约空间(1~6个字节表示一个字,中文大多是3字节),再次打开时,再转换回Unicode(Windows XP的记事本是这样的,win7记事本保存时就可以自己选编码方式了),网页也有这类似的应用。 总结一下:计算机要处理非英文的字符,就要使用其他字符编码,如要处理中文,就要使用GB2312(只支持中文、英文)或Unicode、UTF-8(支持所有语言)。 Ps:GBK和UTF-8并不兼容,于是在我刚开始折腾Ubuntu16.04时,发现在里面预装的rhythmbox中,我的音乐标题全是乱码,百度一下,在Ubuntu下处理好了,等重启回到win7时,win7又显示乱码了,解决方案:在Ubuntu下使用网易云音乐。还有当年去福建长乐一中集训,由于编码方式不兼容,我Ubuntu的文件用ftp传到他们那里,文件名只会显示乱码,导致我第一天没有成绩,解决方案:用Windows或Ubuntu下的ftp软件 Python3中的String(字符串)类型编码方式及其应用 python3中,字符串类型默认使用Unicode,直接可以处理中文了,不像Python2,默认ASCII,要处理中文还要手动UTF-8。如果要更改编码方式,比如希望使用GBK,那么要加一行注释( 叫做编码声明 ) # -*- coding: gbk -*- 或#coding=gbk (等号前后不能有空格),要放在第一行,如果第一行已经有了解析路径(#!/usr/bin/python3),那编码声明就要放在第二行。关于编码声明更详细的官方解释。再次强调,Unicode/UTF-8不与GBK兼容浣犲ソ锛屼笘鐣岋紒。

优秀的个人博客,低调大师

《Pro ASP.NET MVC 3 Framework》学习笔记之二十一【Area及URL架构的最佳实践】

使用Areas MVC框架支持在areas(区域)里面组织一个web应用程序,每一个area呈现应用程序的一个功能段,比如管理,订单,客户支持等等。这对于一个大的项目是非常有用的,因为将所有的controller,model,view都只是放在一套文件夹里面(整个项目所有的Controller都在一个文件夹下)会非常难管理的。这时area就非常有用了,每一个area都有自己的一套文件结构,如Controller,View,Model,通过area就可以保持相对的分离。这样做可以让程序的每一个功能块划分的更加明确,当有很多的开发人员合作开发时也可以避免相互冲突。 下面会创建一个实例来说明Area的作用: 首先创建一个WorkingWithAreas项目使用Internet Application模版,接着创建一个名为Admin的Area。 完成以后,我们会发现Area里面其实是一个mini版的MVC项目,在Area目录下生成了一个类AdminAreaRegistration,这个类里面一个非常有意思的方法是RegisterArea,在这个方法里面藉着URL模式注册了一个路由,当然其他的路由也是在这里定义。如果你要给route传递一个名字而不是用null,那么route的名字必须是全局唯一的,不仅仅在该Area内唯一。我们不需要做其他的操作来确保该注册方法被调用,系统自动添加到了Global.asax.cs里面的Application_Start方法里面,如:AreaRegistration.RegisterAllAreas();当调用这个的时候会让MVC框架遍历我们应用程序的所有类,并找出从AreaRegistration类派生的类,然后调用这些类里面的RegisterArea方法。 注意:不要改变在Application_Start方法里面与route有关的语句的顺序。如果我们在调用AreaRegistration.RegisterAllAreas方法之前,先去调用了RegisterRoutes方法,那么我们的route也要定义在area routes之前。假设routes是按照顺序被评估或匹配,这就意味着在对area里面的controller进行请求时可能会匹配到错误的路由。 AdminAreaRegistration类里面的public override void RegisterArea(AreaRegistrationContext context)方法有一个AreaRegistrationContext类型的参数,这个参数暴露了一套MapRoute方法来让我们在Area里面使用,跟我们在Global.asax.cs里面的RegisterRoutes方法里面使用MapRoute一样。这个有点像我们在ashx里面使用Response是通过HttpContext对象来调用的,上下文对象一般都是这样的作用(个人理解)。在AreaRegistrationContext类里面的MapRoute方法自动限制了route注册的包含Area Controller的命名空间。这也意味着当我们在area里面创建一个controller时,必须在默认的命名空间里面。否则路由系统会找不到它。 接着我们在area里创建一个controller——HomeController,接着再创建一个View。然后可以运行我们的程序 报错是因为MVC不知道选择哪个controller(HomeController有两个:一个在Area里面,一个在外面),解决的方法前面的笔记里面有提到的,如下: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute("Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional },// Parameter defaults new[] { "WorkingWithAreas.Controllers" } ); } 在Area里面创建链接时跟前面创建时一样,并没有什么特别的步骤。MVC框架会探测与一个实际的Area的相关的请求,然后会在仅仅为该Area定义的routes中找到一个匹配的来创建输出的链接。 例如:@Html.ActionLink("Click me", "About"),在页面呈现的链接是:<a href="/Admin/Home/About">Click me</a> 如果链接指向的是其他Area里面或者是Area外面的controller里面的一个action方法,我们必须指定Area的名字,如下: @Html.ActionLink("Click me to go to another area", "Index", new { area = "Support" }) 呈现为:<ahref="/Support/Home">Click me to go to another area</a> 如果我们要创建一个链接,action是不是在Area里面而是在根目录下的,这时可以这样: @Html.ActionLink("Click me to go to another area", "Index", new {area = ""}) URL架构最佳实践 上面讲了很多关于URL的结构,近年来,对应应用程序URL的设计越来越来受到重视,有一些比较重要的设计严则出现。如果我们遵循这些严则,将会改善应用程序的可用性,兼容性,已经搜索引擎的排名。这些严则如下: 1.让我们的URL干净并且友好。 http://www.amazon.com/Pro-ASP-NET-MVC-3-Framework/dp/1430234040/ref=sr_1_13?s=books&ie=UTF8&qid=1294771153&sr=1-13将这样的URL变成如下:http://www.amazon.com/books/pro-aspnet-mvc3-framework是不是会好很多。 下面是关于URL友好的一些指南: 1)设计URL来描述它的内容而不是实现细节。使用"/Articles/AnnualReport"代替"/Website_v2/CachedContentServer/FromCache/AnnualReport" 2)使用内容标题胜过ID。使用"/Articles/AnnualReport"代替"/Articles/2392",当然如果是必须用的情况可以两个结合,如/Articles/2392/AnnualReport,这个会比单纯用ID输入更多的字符,但是这样有助于搜索引擎的排名。 3)不要使用针对HTML的文件扩展名,如:.aspx or.mvc。但是可以使用特殊的文件类型如:.jpg, .pdf, and .zip。虽然当我们设置合适的MIME类型时,浏览器不会关心文件扩展名,但是人们倾向于PDF文件的扩展名就是.pdf 4)具有层次。如:/Products/Menswear/Shirts/Red。这样访问的人很容易猜到父级的链接。 5)大小写不敏感。asp.net路由系统默认就是这样。 6)避免符号,编码,字符序列。如果我们希望一个单词分开,可以使用“—”如:/my-great-article。下划线是不友好的,URL会编码空格成为奇怪的字符,如“/my+great+article”或是令人讨厌的如“/my%20great%20article” 7)不要改变URL。因为这样做等于丢掉了业务,当我们改变URL时要尽可能的通过301重定向支持过去旧的URL架构。 8)保持一致性。整个应用程序只使用一种URL格式。 2.正确的选择GET和POST 总的原则就是:GET请求应该针对只读的信息检索,POST请求应该任何可能改变应用程序状态的操作。 在标准的承诺条款中:GET针对安全的交互,POST针对不安全的交互。这些约定是W3C制定的。 GET请求是可寻址的——所有的信息包含在URL中,所以这可能使书签或链接指向这些地址。 好了,今天的笔记就到这里。关于URL和路由的这章笔记到这里就结束了。 晚安! 本文转自Rt-张雪飞博客园博客,原文链接http://www.cnblogs.com/mszhangxuefei/archive/2012/02/26/mvcnotes_21.html如需转载请自行联系原作者 张雪飞

优秀的个人博客,低调大师

《从零开始学Swift》学习笔记(Day 62)——Core Foundation框架之内存托管对象与非托管对象

内存托管对象 Swift中调用CoreFoundation函数获得对象时候,对象分为:内存托管对象和内存非托管对象。 内存托管对象就是由编译器帮助管理内存,我们不需要调用CFRetain函数获得对象所有权,也不需要调用CFRelease函数放弃对象所有权。 获得这些内存托管对象的方法,是采用了CF_RETURNS_RETAINED或CF_RETURNS_NOT_RETAINED注释声明,示例代码: 1 2 3 4 5 6 7 8 9 10 -(CGPathRef)makeToPathCF_RETURNS_RETAINED { UIBezierPath*triangle=[UIBezierPathbezierPath]; [trianglemoveToPoint:CGPointZero]; [triangleaddLineToPoint:CGPointMake(self.view.frame.size.width, 0 )]; [triangleaddLineToPoint:CGPointMake( 0 ,self.view.frame.size.height)]; [triangleclosePath]; CGPathReftheCGPath=[triangleCGPath]; return CGPathCreateCopy(theCGPath); } 内存托管对象使用起来比较简单,不需要我们做额外的事情。 1 2 3 4 5 6 funcCFStringCreateWithCString(_alloc:CFAllocator!, _cStr:UnsafePointer<Int8>, _encoding:CFStringEncoding)->CFString! //内存托管对象 funcCFHostCreateCopy(_alloc:CFAllocator?, _host:CFHost)->Unmanaged<CFHost> //内存非托管对象 内存非托管对象 内存非托管对象就是内存需要程序员自己管理。这是由于在获得对象的方法中没有使用CF_RETURNS_RETAINED或CF_RETURNS_NOT_RETAINED注释声明,编译器无法帮助管理内存。在具体使用时候我们可以上一节的方法判断是否为非内存托管对象。 内存非托管对象使用起来有些麻烦,要根据获得所有权方法,进行相应的处理。 1.如果一个函数名中包含Create或Copy,则调用者获得这个对象的同时也获得对象所有权,返回值Unmanaged<T>需要调用takeRetainedValue()方法获得对象。调用者不再使用对象时候,Swift代码中需要调用CFRelease函数放弃对象所有权,这是因为Swift是ARC内存管理的。 2.如果一个函数名中包含Get,则调用者获得这个对象的同时不会获得对象所有权,返回值Unmanaged<T>需要调用takeUnretainedValue()方法获得对象。 示例代码如下: 1 2 3 4 lethost:CFHost=CFHostCreateWithName(kCFAllocatorDefault, "127.0.0.1" ).takeRetainedValue() lethostNames:CFArray=CFHostGetNames(host,nil)!.takeUnretainedValue() 本文转自 tony关东升 51CTO博客,原文链接:http://blog.51cto.com/tonyguan/1748668,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册