- 博客(23)
- 资源 (4)
- 收藏
- 关注
原创 std::string trim
代码来自https://stackoverflow.com/questions/216823/whats-the-best-way-to-trim-stdstring?page=1&tab=votes#tab-topstd::string 没有trim函数,需要自己实现。ltrim实现如下:// trim from start (inplace)staticinlinevoid ltrim...
2018-03-15 23:34:15
3606
原创 SSL/TLS学习(十)
如果有应用程序需要用SSL/TLS来加密websocket连接,可以参考以下的方法。第一步,下载cmake。https://cmake.org/download/百度网盘https://pan.baidu.com/s/1kXmYALT第二步,安装OpenSSL。在OpenSSL的官网上只有源代码下载,并没有编译好的安装包。https://www.openssl.org/为了避免搭建编译环境的麻烦可...
2018-03-06 22:39:23
525
原创 SSL/TLS学习(九)
可以用Windows自带的IIS来测试刚做好的数字证书。win10缺省是不安装IIS的。可以在搜索框输入“管理工具”来查看是否已经安装了IIS。(如果是英文版,需要输入administrative tools。)如果有”Internet Information Services (IIS)管理器“就说明已经安装好了,可以跳过安装这一步。否则,就要先安装IIS。安装过程可以参考这个视频。http:/...
2018-03-01 07:05:33
200
原创 SSL/TLS学习(八)
使用OpenSSL创建证书在OpenSSL的官网上只有源代码下载,并没有编译好的安装包。https://www.openssl.org/为了避免搭建编译环境的麻烦可以从wiki上下载编译后好的安装包。https://wiki.openssl.org/index.php/Binaries本文以32位版本的1.0.2n为例,介绍生成证书的步骤。也可以从这里下载。http://download.csdn...
2018-02-24 22:03:08
168
原创 SSL/TLS学习(七)
上述通信过程看似安全,其实还有一个漏洞。 假设攻击者C也向D申请加密自己的公钥,而D无法判断C是否会发动中间人模式的攻击。假设D给C发放了用D的密钥加密的C的公钥,那么C就可以实施中间人模式的攻击了。 中间人模式攻击能够成功,原因在于B收到C发来的加密公钥的时候,虽然可以通过D的公钥解密,但是依旧无法判断解密后的公钥是来自A的,还是来自C...
2018-02-20 11:26:51
323
原创 SSL/TLS学习(六)
为了减少B持有的公钥数量,不得不再引入一对密钥。(为了减少密钥而增加密钥。。。(lll¬ω¬)。。。) 而且,这一对密钥必须是B所信任的第三方D所持有,同时B也需要持有D的公钥。A为了和B通信,必须要让D用D的私钥加密A的公钥。这个过程发生在A与B通信之前,并且只需要一次。以后A和B的通信,D就不用介入了。 A和B的通信过程如下。 ...
2018-02-19 21:16:29
237
原创 SSL/TLS学习(五)
中间人模式攻击可以成功的关键在于,A向B发送公钥的时候只能使用明文。B收到公钥的时候,无法判断公钥是来自A还是攻击者C。而如果A在发送公钥的时候对公钥进行加密,无论是采用对称加密还是非对称加密,都又会涉及密码或密钥的传递。在通信的过程中已经无法解决这个问题了。 因此,不得不在通信之前引入了另外一个密钥对,来对握手阶段发送的公钥进行加密和解密。也就是说,通信之前,A已经...
2018-02-15 15:40:02
179
原创 SSL/TLS学习(四)
以上两种加密通信方式都无法防范中间人模式的攻击。所谓中间人就是攻击者通过伪装IP等手段,在A和B的通信过程中,让A以为自己是B,让B以为自己是A,从而获取秘密信息的攻击手段。下面就以假想的改进后的非对称加密为例,说明中间人模式的攻击过程。假设攻击者是C。1. B以为自己发送的通信请求是发给了A,但是其实是把通信请求发送给了C。2. C收到B的通信请求后,直接把通信请求转发给A。3. A收到了C发送...
2018-02-14 14:06:47
224
原创 SSL/TLS学习(三)
上述通信过程有两个问题:1. A无法发送加密信息给B。因为嗅探攻击者有可能持有公钥,可以解密A用私钥加密的信息。2. 非对称加密的CPU占用率高于对称加密。为了解决上述两个问题,假想的改进后的通信过程如下:1. B用明文发送消息给A请求通信。2. A生成一对密钥。3. A把公钥用明文发送给B。(因为目前无法加密。)4. B生成一个用于对称加密的随机密码,用公钥加密,发送给A。5. A用私钥解密A发...
2018-02-13 16:23:39
223
原创 SSL/TLS学习(二)
假想的非对称加密的网络通信过程假定A是服务器,B是用户,A与B的通信过程如下:1. B用明文发送消息给A请求通信。2. A生成一对密钥。3. A把公钥用明文发送给B。(因为目前无法加密。)4. B用公钥加密消息,并发送给A。5. A用私钥解密A发来的消息。6. A用私钥加密要发送给B的信息,并发送给B。7. B用公钥解密A发来的信息。8. 回到步骤4,循环往复。采用这种方式的前提是B要确定A的身份...
2018-02-12 22:49:53
193
原创 SSL/TLS学习(一)
SSL/TLS SecureSockets Layer (SSL) Transport Layer Security (TLS)1. 为了通信安全,首先出现的是对称加密。 优点是简单,如果密码够长,强度也足够高。 缺点是需要传递密码。只要密码被窃取,攻击者可以通过嗅探(偷窥)模式获得秘密信息。二战中的交战各国似乎都是用这种方式加密。中途岛海战美军最大的优势就是获得了日本海军的密码。 2. 非对称加...
2018-02-11 23:30:04
228
原创 在 Mac 上如何编译 bochs (X11)
安装X11Mac OS 的缺省安装是不会安装X11的,所以需要自行安装。X11 在安装光盘中。下载bochs-2.5.1.tar.gzhttp://bochs.sourceforge.net/cgi-bin/topper.pl?name=See+All+Releases&url=http://sourceforge.net/proje
2012-02-11 21:56:08
4573
3
原创 在 Mac 上如何编译 bochs (Carbon)
下载bochs-2.5.1.tar.gzhttp://bochs.sourceforge.net/cgi-bin/topper.pl?name=See+All+Releases&url=http://sourceforge.net/projects/bochs/filesMac 在下载文件后,会自动把 gz 文件解压缩,得到 bochs-2.5.2.tar,缺省位置在用
2012-02-09 23:00:09
4774
原创 MacBook 如何切换输入法 (change input source)
在网上看了不少回答,对我这样的菜鸟来说实在太简略了,这里提供一个完整版。点击窗口左上角的苹果,在下拉菜单中选择 System Preferences...。在 System Preferences 中,选择 Keyboard,再选择 Keyboard & Text Input,确认窗口正中上方的按钮选中了 Keyboard Shortcuts。在右侧窗口中会
2012-02-09 07:42:49
7348
原创 iOS SDK 4.3 ( Xcode 4 )学习笔记 iPhone101 (05)
<br />Xcode 4 与 Xcode 3 相比,界面的变化还是满大的。为了避免让大家浪费时间在英文上,我决定把我的小小心得和大家分享。<br /> <br />我的环境是英文的。<br /> <br />我觉得 iPhone101 中的内容对于 HelloWorld 来说有些太多了,一时很难消化。尤其是像我这样的想在短时间内就看到些成果的人来说,就更是如此。为了避免大家走同样的弯路,我打算把其中的与操作无关的介绍都去掉,只留下操作的步骤,并且把曾经困扰我的关于界面元素的名词给大家解释一下,这样可以帮助
2011-06-02 19:17:00
923
原创 iOS SDK 4.3 学习笔记 iPhone101 (04)
关于 Connection 的理解在 iOS SDK 中开发感觉和 Windows 中的 Dialog Based Application 开发比较象,都是把一些页面元素拖动到窗口中,然后再写相应的代码。但是,为什么 Windows 中就没有建立 Connection 这个过程呢?是因为 Windows 中不需要建立吗?明显不是。页面元素如果与应用之间没有关联,是无法完成任何有效的操作的。答案是 Windows 中的 Connection 是 Visual Studio 帮我们建立好了。既然这样,为什么 X
2011-06-01 06:55:00
555
原创 iOS SDK 4.3 学习笔记 iPhone101 (03)
关于 Connection Connection 对我来说也是一个新概念。 我的理解是这样的: nib 文件中包含了所有的界面对象,但是这些对象响应用户的操作是在 .m 文件中的,这样就需要一种机制,把 nib 文件中的对象和 .m 文件中的方法及变量联系起来,这就是 connection 的作用。而我们在创建 connection 的时候,也同时在 .m 和 .h 文件中增加了相应的内容。 .h 和 .m 中的内容比较好理解,这里就不提了。 nib 文件中的内容是我比较感兴趣的部分。 先以按钮行为为例。
2011-05-26 17:28:00
645
原创 iOS SDK 4.3 学习笔记 iPhone101 (02)
在 iPhone101.pdf P30 关于 File's Owner 有这样一段描述 In a nib file, in contrast to the other objects you add to the interface, the File’s Owner object is not created when the nib file is loaded. It represents the object set to be the owner in the method that loads
2011-05-25 12:19:00
778
原创 iOS SDK 4.3 学习笔记 iPhone101 (01)
准备 iPad 开发,由于使用IOS SDK 4.3 , 很多老的书的界面与此不符,只好看英文的说明了。一篇小小的 HelloWorld 居然看了 n 个小时。。。。。。写了快30年程序了,实在汗颜。难点有三:1 界面不熟 (IOS SDK 4.3 变化较大)2 语言障碍 (英语还是不如母语呀)3 程序框架 (完全不了解)打算每天写些,希望能对刚开始用IOS SDK 4.3 的同学们略有帮助。iPhone101.pdf P25 有这样一行语句@synthesize myViewControll
2011-05-23 14:51:00
817
原创 关于nhw32.dll
<br />csdn的博客不支持ie6。前两天电脑崩溃,重装后用ie6无法更新博客了。现在装上ie8就可以了。<br /> <br />继续nhw32.dll的分析。<br /> <br />nhw32.dll没有使用hook API,而是采用了一种叫做API拦截的技术,就是把需要拦截的函数的入口部分的7个字节改为一条跳转语句,跳转到我们自己定义的函数入口,然后在我们自己定义的函数里面恢复这7个字节的内容。接着,就执行我们自己函数的指令,执行完成后,跳转到拦截的API入口(因为开始的7个字节已经恢复,所以可
2010-08-18 11:13:00
3842
原创 nhw32.dll取词方式
<br />今天研究nhw32.dll的取词方式。发现好像没有用dll注入的方式,而是采用修改函数入口,跳转到自己的函数。还没有看明白,明天继续。
2010-08-14 23:55:00
2501
原创 生成器、桥梁、策略和状态(Builder, Bridge, Strategy and State)模式的区别
<br />今天在总结设计模式的类图的时候发现生成器、桥梁、策略和状态模式的类图基本一样。他们的区别在哪里呢,主要的区别还是目的不同。<br /> <br />桥梁模式:它与其他三个的差别最大。目的是“将抽象化与实现化脱藕,使得二者可以独立地变化”就是说本来要用继承的地方,现在用聚合代替。这样一来抽象化与实现化都可以有各自的子类。换句话说,就是抽象化有两个方向的变化因素,如果直接使用继承会使类的数目成爆炸性增长。(因为每一个变化的因素都有多个可能性,例如一个因素有5种变化,另一种有4种变化,就会产生4*5=
2010-08-13 23:52:00
1039
原创 原型模式(PROTOTYPE PATTERN )
<br />原型模式一直没有搞清楚。今天看了一篇博文,有所启发。<br /> <br />http://www.csharpwin.com/dotnetspace/8344r2299.shtml<br /> <br />1 指定种类,创建对象。 复制对象只是手段,不是目的。Builder和Strategy的类图类似,但是也可以从动机上区分。<br /> <br />2 判断一段代码是否在使用原型模式的一个重要标志就是复制之后引用它的目标变量类型是否是抽象类型。
2010-08-12 22:15:00
624
Win32OpenSSL-1_0_2n
2018-02-20
big5转gb2312的小工具
2016-02-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人