自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

终身学习的程序猿

深入学习网络安全、机器学习、人工智能等一切和计算机相关的有趣好玩的知识!

  • 博客(108)
  • 资源 (17)
  • 收藏
  • 关注

原创 基于openswan klips的IPsec实现分析(十一)NAT穿越

基于openswan klips的IPsec VPN实现分析(十一)NAT穿越转载请注明出处:http://blog.csdn.net/rosetta 本节介绍openswan klips的NAT穿越,应用层IKE协商时的NAT在以后的文章再做介绍。简介IPsec和NAT的冲突: NAT服务器对内网来的数据包,需要修改其源地址和源端口为服务器自身的地址和端口,然

2020-06-18 15:42:13 4233

原创 基于openswan klips的IPsec实现分析(十)认证算法维护

基于openswan klips的IPsec VPN实现分析(十)认证算法维护转载请注明出处:http://blog.csdn.net/rosetta 这里指的认证算法是ESP使用的,对通信过程中的信息做哈希,用来校验信息的完整性的;协商时的认证算法仅用来做哈希,哈希结果再用来做签名和验签。 相对于加密算法,认证算法会比较简单些,它也不需要像加密算法一样去构造一个结构体

2020-06-18 15:41:56 2989

原创 基于openswan klips的IPsec实现分析(九)加密算法维护

基于openswan klips的IPsec VPN实现分析(九)加密算法维护转载请注明出处:http://blog.csdn.net/rosetta 本节将介绍klips加密算法的维护,并介绍如何增加新加密算法的支持,下一节将讲认证算法维护和增加。 这里说的加密算法是指对称加密算法,是在通信过程中对传送的信息加解密时使用的,比如:AES,3DES,sm4等。

2020-06-18 15:41:31 3446

原创 基于openswan klips的IPsec实现分析(七)内核SADB维护(1)

基于openswan klips的IPsec VPN实现分析(七)内核SADB维护(1)转载请注明出处:http://blog.csdn.net/rosetta 上一节讲了应用层pluto是如何构造SADB消息发送给内核的,这节将讲内核对SADB的维护,所有SA处理函数都在指针数组msg_parsers[]中。SADB(SA Database)即SA数据库,一般听到数据库三字

2020-06-18 15:41:11 1934

原创 基于openswan klips的IPsec实现分析(八)内核SADB维护(2)

基于openswan klips的IPsec VPN实现分析(七)内核SADB维护2转载请注明出处:http://blog.csdn.net/rosetta内核完整的消息处理过程,以隧道模式ESP协议增加SA情况为例接收消息和发送消息的知识涉及到Linux内核了,所以不关注它是怎么收发,而是关注收到消息后对消息本身的处理过程。但为了保证代码的完整性,就把接收和发送的代码全部帖上来了

2020-06-18 15:40:52 7963 1

原创 使用racoon setkey搭建IPsec环境

使用racoon setkey搭建IPsec VPN环境转载请注明出处:http://blog.csdn.net/rosetta 以前的博文写的都是基于openswan klips的IPsec实现及环境搭建,没有使用过Linux自带的netkey,现基于Linux自带的netkey搭建IPsec VPN环境,并参考UNPV13e写一个应用层程序倾泻安全联盟。

2020-06-18 15:40:29 10529 1

原创 基于openswan klips的IPsec实现分析(六)应用层SADB操作

基于openswan klips的IPsec VPN实现分析(六)应用层SADB操作转载请注明出处:http://blog.csdn.net/rosetta 这里的操作是指由openswan的密钥管理守护进程pluto对于内核SADB的操作。如下来至rfc2367的密钥关联程序和PF_KEY的关系图。

2020-06-18 15:39:22 3646

原创 基于openswan klips的IPsec实现分析(五)应用层和内核通信(2)

基于openswan klips的IPsec VPN实现分析(五)应用层和内核通信——内核操作转载请注明出处:http://blog.csdn.net/rosetta 在数据发送一节讲过,加载模块时会执行pfkey_init()初始化与用户层通信的PF_KEY套接字,在这个函数里会把支持的协议和算法加到pfkey_supported_list[]全局数组中,并在soc

2020-06-18 15:39:04 2879

原创 基于openswan klips的IPsec实现分析(四)应用层和内核通信(1)

基于openswan klips的IPsec VPN实现分析(四)应用层和内核通信——应用层操作转载请注明出处:http://blog.csdn.net/rosetta   klips和NETKEY在内核域中运行,主要负责控制管理SA及密钥,负责注册和初始化模块,数据加密解密,SHA1、MD5算法实现等。两者与用户层通信都使用套接字socket PF_KEY。现讲解用户层pluto和kli

2020-06-18 15:38:41 4019

原创 基于openswan klips的IPsec实现分析(三)安全协议

基于openswan klips的IPsec VPN实现分析(三)安全协议参考rfc2402,rfc2406转载请注明出处:http://blog.csdn.net/rosetta博客格式显示有问题,只能将就了。 AH(Authentication Header)认证头和ESP(Encapsulating Security Payload)封装安全载荷是IPsec主要安全协议,当然

2020-06-18 15:38:22 2831

原创 基于openswan klips的IPsec实现分析(二)数据接收

基于openswan klips的IPsec VPN实现分析之数据接收转载请注明出处:http://blog.csdn.net/rosetta  接收数据解密和加密发送数据处理基本相似,无非就是逆过程。  Klips对接收数据的处理流程如下:  数据解密过程(以esp为例)  ipsec_rcv() ->ipsec_rcv_decap()

2020-06-18 15:38:04 3457

原创 基于openswan klips的IPsec实现分析(一)数据发送

基于openswan klips的IPsec VPN实现分析之数据发送转载请注明出处:http://blog.csdn.net/rosetta  Klips是openswan自带实现IPsec功能的模块,其主要实现数据加解密、安全关联、密钥管理、身份认证等功能,并以.ko模块插入到内核中运行。  Klips对外出数据的处理流程如下:  相关函数调用过程如下:

2020-06-18 15:37:44 6634

原创 使用源码搭建IPV6 IPsec隧道

本文档的Copyleft归rosetta所有,使用GPL发布,可以自由拷贝、转载,转载时请保持文档的完整性。原文地址:http://blog.csdn.net/rosetta Openswan是Linux下IPsec的最佳实现方式,我之前使用的版本是openswan-2.4.7,它最大的缺点是不支持IPV6,现在国家大力扶持IPV6项目,下一代互联网IPV6全面普及已近在

2020-06-16 15:41:04 7380 2

原创 IPsec数据传输过程

IPsec VPN数据传输过程转载请注明出处:http://blog.csdn.net/rosetta 以下是一个数据包经IPsecVPN隧道的传送过程(如ICMP包),由左边的VPN保护子网内的PC机向右边VPN保护子网内的PC机传送数据时,左边PC发送的数据由左VPN eth1内口接收后发现需要经过隧道,则把数据交由左ipsec0口加密(tunnel, ESP或AH)

2020-06-16 15:38:33 12268 1

原创 经典算法---选择排序 selection sort

选择排序 selection sort时间复杂度O(n2)O(n^2)O(n2)选择排序每一趟找出一个最小(或最大)数放到序列起始位置,然后再从剩余待排序元素中继续找到最小(或最大)数,放到已排序的序列的尾部,以此类推,直到全部待排序元素排完。选择排序的思想和冒泡排序是类似的,但选择排序和冒泡排序是有区别的1:冒泡排序比较的是相邻两个数,而选择排序是顺序比较,找到最小(或最大)数。冒泡...

2019-06-09 16:43:28 307

原创 算法的好坏是如何分析的?

前言本节参考《算法导论》P13P_{13}P13​~P16P_{16}P16​, 以插入排序为例做说明分析算法的复杂度,给出了计算插入排序算法运行时间的表示方式和计算方法,并给出了插入排序最好情况、最坏情况、平均情况的分析过程,最后引出Θ\ThetaΘ(读任务theta)表示。掌握此方法后,就可以对遇到的任何算法做一个形式化的评估,从而了解算法的执行效率。具体插入排序的算法的思想请见之前的博文...

2019-06-08 16:13:26 1427

原创 经典算法---插入排序 insert-sort

时间复杂度:O(n2)O(n^2)O(n2)在算法导论中“算法分析”一节就是以“插入排序”为例分析的,已经分析的很清楚了,最好情况下,即已经排好序的情况下,只有外层循环,所以时间复杂度为O(n)O(n)O(n),但是如果正好是逆序,那么时间复杂度为O(n2)O(n^2)O(n2)思想:取待排序的牌,和已排序的手牌(从左到右依次变大)里最右边的牌开始比较大小,如果最右边的牌比待排序的牌大,那么...

2019-06-06 10:26:32 1491

原创 经典算法---冒泡排序 bubble-sort

时间复杂度:O(n2)O(n^2)O(n2)思想:从给定无序序列头部开始,两两比较,根据两者大小交换位置,直到将最大(或最小)的数据交换到队尾(将最大的放到最后即升序,将最小的放到最后即降序),从而成为有序序列的一部分 。下一次继续这个过程,直到所有数据元素都排好序 。外层排序只要进行len−1len-1len−1就可以排好了,内层排序只要排len−1len-1len−1再减去已经排序好的i...

2019-06-04 17:24:56 972

原创 如何判断计算机的快慢?

参考《算法导论》p6p_6p6​~p7p_7p7​。为什么要学算法?就是想设计出的算法让计算机跑的更快嘛,那怎么判断计算机运行的快慢?或者不同算法在同一台计算机上的运行时间如何比较?判断CPU运行快慢(CPU快慢也即计算机快慢)的一个单位是MIPS(Million Instruction Per Seconds),每秒百万条执行,此值肯定是越大则表示CPU运行越快。另外一个评价标准是,某个算...

2019-06-04 17:05:09 1461

原创 Linux内核中链表的实现

前言曾经写过一篇《Linux内核中链表的使用》, 这篇文章只是参考LKD3e介绍了内核中链表的使用方法,并没详细介绍链表的具体实现和该链表的组织方式,本文将更深入学习内核中的链表相关的知识,并解答上述问题。传统双向链表和内核中的双向链表的区别Linux内核中实现的链表,和平时看到的链表不太一样,它不是把具体的数据结构塞入到链表中,而是把链表节点存放到用户的数据结构中。这个设计的主要目的是因为...

2019-06-03 16:43:45 661

原创 C语言高级用法---container_of()

在Linux内核源码中,实现和链表相关的接口list_entry()时,会调用container_of()宏定义,它的作用是:给定结构体中某个成员的地址、该结构体类型和该成员的名字获取这个成员所在的结构体变量的首地址。container_of()宏定义实现如下所示/** * container_of - cast a member of a structure out to the cont...

2019-06-03 13:58:15 23776 4

原创 C语言高级用法---typeof( ((type *)0)->member )和offset_of()

ANSI C标准允许值为0的常量被强制转换成任何一种类型的指针,并且转换的结果是个NULL,因此((type *)0)的结果就是一个类型为type *的NULL指针.如果利用这个NULL指针来访问type的成员当然是非法的,但typeof( ((type *)0)->member )是想取该成员的类型,所有编译器不会生成访问type成员的代码,类似的代码&( ((type *)0)...

2019-06-03 09:20:00 6740

原创 C语言高级用法---typeof()关键字

前言typeof() 是GUN C提供的一种特性,可参考C-Extensions,它可以取得变量的类型,或者表达式的类型。本文总结了typeof()关键字的常见用法,并给出了相应的例子,以加深理解 。typeof()关键字常见用法typeof()关键字常见用法一共有以下几种。不用知道函数返回什么类型,可以使用typeof()定义一个用于接收该函数返回值的变量#include &lt...

2019-06-02 17:46:55 81139 8

原创 基于github搭建本地开发环境

以前写过很多测试程序,但是代码在本地到处乱扔,也从来没有归整过,现基于github来维护自己的代码,这样只要能连网,随时就可以查了。目标配置SSH证书连接github克隆github代码仓库到本地开发下面跟着以下步骤就可以完成了。生成证书mkdir -p /root/test #所有操作都在此目录中进行ssh-keygen -t rsa -C "panlimin767...

2018-09-13 18:37:33 1783

原创 高等数学---函数的极限

前言本博客目前阶段记录的数学相关的知识,是为了学习机器学习而准备的,所以可以很明显的感觉到数学的实用性和数学的魅力。但从另一侧面来说,本博客记录的数学知识是不完整的,也是不成体系的,也没有深挖相关知识的来龙去脉,只是本人觉得机器学习中需要某些数学知识的时候,就记这些知识,够用就可以了。所以,并不适合入门。虽然如此,我想本博客数学方面的相关内容最起码能起一个方向作用(因为当年我开始学习机器学...

2018-07-20 09:17:43 1644

原创 中学数学基础

中学数学基础学高数是为了学机器学习,学中学数学基础是为了学高数……常用符号NNN(Natural Number)-自然数。0,1,2,…0,1,2,…0,1,2,\dotsN+N+N_+和N∗N∗N^*表示正整数。ZZZ(德语Zahlen)-整数QQQ(Quotient)-有理数RRR(Real Number)-实数CCC(Compex Number)-复数N⊆Z...

2018-07-14 17:30:38 402

原创 高等数学---数列的极限

前言本博客目前阶段记录的数学相关的知识,是为了学习机器学习而准备的,所以可以很明显的感觉到数学的实用性和数学的魅力。但从另一侧面来说,本博客记录的数学知识是不完整的,也是不成体系的,也没有深挖相关知识的来龙去脉,只是本人觉得机器学习中需要某些数学知识的时候,就记这些知识,够用就可以了。所以,并不适合入门。虽然如此,我想本博客数学方面的相关内容最起码能起一个方向(因为当年我开始学习机器学习相...

2018-07-14 16:43:16 6319

原创 机器学习笔记(13)---支持向量机SVM

前言学习前几章很顺利,然后就觉得机器学习也不过如此,但学到这章时,发现如果没有一点理论基础,是看不懂的(如果不想看懂理论,可直接使用MLiA书上例子,只要知道怎么把数据组织成算法支持的数据类型即可),回想起看前几章为什么能这么顺利,原因是之前看过一堆相关视频和书籍。 所以,从本章开始,会先给出相关的理论,然后再举例并进行源码分析。如果想看算法的效果,可直接上代码,这样会有一个直观的认识,会加...

2018-07-14 15:37:08 483

原创 python编程精要(4)---Python字符串编程

前言本系列博文为Python编程精粹和要点,相关内容没有系统性可言,仅记录我在使用python过程觉得最关键和常用的东西,并不是python编程入门笔记,适合有一定编程经验的朋友。Python字符串编程Python经常需要处理文本字符串,依据本人最近的经验,无非要完成数据读取、字符串分隔、过滤(去掉空行,去掉首尾空格等)、查找等操作,下面来看看具体是如何实现的。打开文件,对匹配的...

2018-07-14 15:25:21 424

原创 python编程精要(3)---numpy中的transpose

numpy中的transposenumpy中最难理解的就是轴的transpose(转置)了,下面用实例说明它是如何进行转置的。 传给transpose的参数是以轴编号组成的元组,返回的结果是源数据是视图,而不是拷贝,即对transpose的修改都会反应到原始数据上。 另外注意下,因为上一节刚讲了引用和拷贝,而且也说了“python中的赋值操作一般都是储存对象的引用,而不是这些对象的拷贝 ”...

2018-06-24 08:33:06 998 2

原创 python编程精要(2)---引用和拷贝

前言本系列博文为Python编程的精粹和要点,并不是python编程入门笔记,适合有一定编程经验的朋友。知识要点:引用和拷贝顶层拷贝(浅拷贝)和嵌套拷贝(深拷贝)参考《Python学习手册》第四版。python中的赋值操作一般都是储存对象的引用,而不是这些对象的拷贝,这样做第一可以节约空间,第二可以提升效率,但使用引用的方式的话,如果改变原来的对象中的值,那么所有引用此对...

2018-06-03 15:10:56 264

原创 python编程精要(1)---多线程和多进程

前言本系列博文为Python编程的精粹和要点,并不是python编程入门笔记,适合有一定编程经验的朋友。在训练机器学习算法模板时,在数据量上百万条时,如果还是使用单进程、单核去跑,那就太慢了。Python的高并发尝试过使用多线程,但因为多线程有GIL方面的问题,无法充分发挥多核的威力,所以选择使用了多进程。现对比Python多线程和多进程的使用,并记录相关注意点。如果想要直接能发挥多核...

2018-06-03 14:48:44 377

原创 机器学习笔记(12)---使用Sklearn中的SVM

svm理论太难理解了,先上个sklearn中的SVM代码提升点信心吧,理论后续补上。import numpy as npfrom sklearn import datasetsfrom sklearn.pipeline import Pipelinefrom sklearn.preprocessing import StandardScalerfrom sklearn.svm im...

2018-04-25 18:09:50 1127 1

原创 c++学习笔记

前言看到本博最近都在学习机器学习,怎么突然冒出一篇C++的笔记,有点突兀……这是因为最近在学怎么获取数据,然后喂给机器学习算法,现在想从原始网络流量包中获取kdd99格式,网上找了下,有个现成的源码是使用C++写的,所以就花了半天时间看了下C++。也就是说主要目的是为了看懂一个C++原程序,所以和C++相关的知识点是不全的,后续如有时间会再补充更新。参考书籍《C++Primer.Plu...

2018-04-12 08:43:56 595

原创 机器学习笔记(11)---Logistic回归

前言我记得刚学习机器学习不久的时候,去看吴恩达老师的机器学习视频,他的第二讲就是关于监督学习梯度下降相关的内容,梯度下降正是和今天讲的Logistic回归有关的,当时看那视频真心累,数学公式见一个不认识一个,看一讲视频要半个月。但是功夫不负有心人,经过一年多的打基础,现在终于可以比较容易的 看懂相关知识点了,现把《机器学习实践》第五章Logistic回归做一个学习笔记。Logistic...

2018-04-04 21:52:25 583 1

原创 机器学习笔记(10)---朴素贝叶斯

基于概率论的分类方法:朴素贝叶斯前两章KNN和决策树相对来说是很简单的,本章开始学习朴素贝叶斯,使用基于概率论的分类方法。这部分的内容要用一定的统计学和概率论与数理统计的基础。可参考中国大学MOOC课程概率论与数理统计 由哈工大数学系出品,另外还可参考浙江大学和同济大学的概率论与数理统计课程,相关课程请自行搜索。朴素贝叶斯总结贝叶斯相关理论一开始并没有理解,看了好多遍视频,再结...

2018-03-19 21:27:23 507

原创 机器学习笔记(9)---决策树

决策树决策这一节相对KNN算法来说难了点,因为本节需要先理解熵和信息增益的概念,理解后再看就比较容易了。不过我也是先看的代码,在看代码的过程中没明白它为什么要这么做,然后再去查相关的书籍,再把熵和信息增益的概念理解了,再去看代码,就明白了。基本概念基本概念不懂没关系,先去看源码。然后再回顾和总结。香农熵(也叫信息熵)简称熵,其计算公式如下:H=−∑ni=1p(xi)log2...

2018-03-19 21:21:58 493

原创 机器学习笔记(8)---K-近邻算法(6)---KNN算法学习总结

前言KNN算法系列文章加上总结共六篇笔记,已全部完成。本篇笔记做一个总结,随手再举个西瓜书上的例子。 转载请注明出处:http://blog.csdn.net/rosetta总结实际上KNN算法只要把数据准备好给分类函数就可以了。MLiA中的分类函数是classify0(),sklearn中由neigh.fit(normMat, datingLabels)完成,另外注意下前者直接...

2018-02-11 21:49:33 700

原创 机器学习笔记(7)---K-近邻算法(5)---使用K近邻算法检测异常操作之二

前言上一节给出了使用K近邻算法检测异常操作的一种方法,现给出另外一种方法。 转载请注明出处:http://blog.csdn.net/rosetta使用K近邻算法检测异常操作之二这节的内容和上节总体上类型,区别在于,上一节比较的是最频繁使用的命令和最不频繁使用的命令,而这次使用全量比较。 全量比较的思路仅仅特征选择上不太一样,它先统计所有15000条样本中不重复的命令条数(假设...

2018-02-11 21:38:34 676

原创 机器学习笔记(6)---K-近邻算法(4)---使用K近邻算法检测异常操作之一

前言接着前面三篇学习笔记《约会对象魅力程度分类》、《使用sklearn中的KNN算法》和《KNN手写识别系统》,本节记录使用K近邻算法检测异常操作,主要参考《Web安全之机器学习》 。 转载请注明出处:http://blog.csdn.net/rosetta使用K近邻算法检测异常操作之一实验数据及情况实验数据在Schonlau个人网站中:http://www.schonl...

2018-02-11 21:27:05 4282 2

C#对象间信息交换-增加多对一通信

C#对象间信息交换-增加多对一通信。 本资源是C#对象间的协作和信息交换文章中使用到的演示代码,有需要的可自行下载研究,代码可直接使用Visual Studio 2015打开InformationTrasmit.sln就可以看到里面的所有项目。 相关博文:http://blog.csdn.net/rosetta/article/details/52504992

2016-09-24

C#对象间信息交换

本资源是C#对象间的协作和信息交换文章中使用到的演示代码,有需要的可自行下载研究,代码可直接使用Visual Studio 2015打开InformationTrasmit.sln就可以看到里面的所有项目。 相关博文:http://blog.csdn.net/rosetta/article/details/52504992

2016-09-11

Git-2.6.3-64-bit

git官网下载不来啊,亲,我好不容易找来的,传到CSDN吧。这个是64位的,需要32位的请看另外一个资源Git-2.6.3-32-bit。

2016-05-21

Makefile教程

Makefile教程

2012-09-25

netfilter学习笔记集合

个人学习netfilter时网上搜集的,比较全面。 希望对大家有用。

2012-09-25

王爽 汇编语言

王爽 汇编语言

2012-09-21

数据结构 C语言版 严蔚敏

数据结构 C语言版 严蔚敏

2012-09-21

vconfig源码 vlan源码

802.1Q VLAN 源码 CentOS 5.4 编译通过

2012-09-13

iputils ping源码

iputils ping源码 traceroute源码 tftp源码

2012-05-21

net-tools arp源码 ifconfig源码 route源码

net-tools arp源码 ifconfig源码 route源码

2012-05-21

scull源码(Linux设备驱动程序 使用的源码)

Linux设备驱动程序 使用的源码 可参考博文:http://blog.csdn.net/rosetta

2012-05-21

UNIX环境高级编程源码 APUE2E源码

看清楚了是APUE2E随书源码,本人亲测可以编译.

2012-03-06

数据结构 C语言版 第1版 (清华大学 严蔚敏 吴伟民)

数据结构 C语言版 第1版 (清华大学 严蔚敏 吴伟民)

2010-03-11

win32汇编errshow附原码

在编程调试过程中出现的错误代码,并程序可以显示对应错误代码的含义,有利于调试程序时了解出错原因. win32汇编原创附原码。by l_y

2009-09-23

操作系统课程资料(本科计算机专业操作系统课程配套)

大学本科计算机专业课程相关资料,putty,上课ppt.Fedora 7图解安装教

2008-09-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除