自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 资源 (5)
  • 收藏
  • 关注

原创 [EXCEL每日一学]绝对引用和相对引用

在使用EXCEL的过程中,我们常常会用到公式或函数,而公式和函数会对单元格进行引用(操作),这里引用分为绝对引用和相对引用。例如以下表格(学生成绩单):      A        B        C         D1  姓名   语文   数学    总分2  张三    80      75       =$B2 + $C23  李四    86      92

2012-08-19 10:23:37 1513

转载 冲突域和广播域

冲突域指的是会产生冲突的最小范围,在计算机和计算机通过设备互联时,会建立一条通道,如果这条通道只允许瞬间一个数据报文通过,那么在同时如果有两个或更多的数据报文想从这里通过时就会出现冲突了。冲突域的大小可以衡量设备的性能,多口hub的冲突域也只有一个,即所有的端口上的数据报文都要排队等待通过。而交换机就明显的缩小了冲突域的大小,使到每一个端口都是一个冲突域,即一个或多个端口的高速传输不会影响其它端口

2012-08-15 14:35:57 2579

原创 windows 个人证书的导出

windows中,个人证书(带私钥)在导出时由以下几种情况:1.导出时删除私钥信息,这时,证书库中的个人证书也同时被删除了。2.导出时跳过设置保护口令阶段,这样导出的个人证书在安装后不能再导出私钥信息。3.导出时在设置保护口令阶段,勾选设置私钥可导出标志,这样导出的个人证书在安装后也可继续导出私钥信息。windows中,删除个人证书时,其对应的私钥信息不会被删除。

2012-05-29 08:57:42 5503

原创 OpenSSL 双向认证

在使用OpenSSL进行SSL双向认证时,需要在服务器和客户端配置如下接口函数: SSL_CTX_set_verify(SSL_CTX* ctx,int mode,int (*verify_callback)(int,X509_STORE_CTX*)); SSL_CTX_load_verify_locations(SSL_CTX* ctx,const char* CAfile,cons

2012-05-15 17:11:55 15773 2

原创 windows p12(pfx)个人证书安装过程

证书库个人证书存储区为其中的每个证书维护一个属性CERT_KEY_PROV_INFO_PROP_ID,该属性指定了证书对应的密钥容器的相关信息,包括密钥容器名,CSP名称,CSP类型,密钥用途,以及CSP的其他一些参数(这些参数信息也可以使用CryptSetProvParam函数来设置)。因为个人证书携带私钥信息,所以在导出p12(pfx)个人证书时,也导出了其对应密钥容器的相关信息(使用Cr

2012-05-14 18:31:36 10912

原创 OpenSSL库验证PKCS7签名

使用Crypto库签名和验证签名请参考Crypto库实现PKCS7签名与签名验证,可以使用OpenSSL库验证Crypto签名,OpenSSL验证签名可使用简单的代码描述如下://signature_msg为PKCS7签名串int Openssl_Verify(unsigned char* signature_msg,unsigned int length){ unsigned cha

2012-05-12 21:30:56 9249 2

原创 Crypto库实现PKCS7签名与签名验证

在windows中,可以直接使用微软提供的crypto库实现PKCS7签名与签名验证。签名接口函数为CryptSignMessage,其接口定义为:BOOL WINAPI CryptSignMessage( __in PCRYPT_SIGN_MESSAGE_PARA pSignPara, __in BOOL fDetachedSignature,

2012-05-12 16:19:17 8706 5

原创 socket connect 阻塞与非阻塞

在C/S模式中,有时候我们需要连接服务器去下载一些更新,所以在客户端启动时,客户端自动连接服务器下载更新,如果客户端与服务器之间网络连接不通,则客户端不用一直等待连接,而是在一定时间内(可以设为若干秒)自动判定网络连接出错,从而不再请求更新~~    socket函数生成socket结构体时,默认生成的socket是阻塞的~如果我们使用connect去连接服务器,而这时网络出现故障,则

2012-03-29 16:54:17 10320

原创 注册表操作注意问题

以前使用RegCreateKeyExA,RegSetValueExA和RegQueryValueExA对REG_SZ类型数据操作时,没有出现过问题,这两天对REG_DWORD数据类型进行操作时,各种问题~~搞了一个多下午,问题还是没找出来~~以前出现错误,可以使用GetLastError来获取错误代码,然后可以从错误代码中得到错误信息,而这里GetLastError都是返回0~~    今天仔

2012-03-26 11:05:26 944

原创 windows 下使用MinGW编译PBC库

Linux下编译PBC库很简单,在PBC Manual中有其介绍,PBC库本身是基于Linux环境来编写的,编译过程和普通其他库的编译过程一样:1)./configure2)make3)make install4)make clean这里要注意一下,PBC库是基于GMP库的,如果Linux系统不存在GMP库时,在./configure这步时会出错,提示没有找到GMP库~~所以我

2012-02-27 21:29:12 5240 25

原创 OpenSSL中EC_GROUP_free和EC_KEY_free出错

这两天想根据国家密码管理局提供的SM2算法,写一个使用椭圆曲线加解密和一个数字签名验签的测试用例,SM2算法提供的加解密逻辑和数字签名验签逻辑与OpenSSL中提供的示例有一定的差别,OpenSSL提供的示例都是按照ECC原理模型来写的,而SM2算法在基本原理模型上有一定的扩展~~在调试数字签名验签的测试用例时,发现在EC_GROUP_free函数和EC_KEY_free函数运行时程序直接崩溃

2011-12-29 14:27:25 5623 1

原创 windows 系统中打开一个数字证书所经历的过程

今天在使用Outlook express调试CSP程序时,发现数字证书总是加载不上(提示该数字证书已经被破坏),使用断点进去跟踪一下,发现在CSP程序中调用CPVerifySignature函数时返回80090006错误(不是一个合法的签名),因为这里CPVerifySignature函数是windows提供的SPI接口函数,肯定不会有错,推测是不是传进去的签名值发生了错误,然而这个签名值来自哪里

2011-12-06 10:07:14 1421

原创 嵌入式开发环境搭建中出现的几个问题

使用H-JTAG下载supervivi到开发板开发板:mini2440ARM芯片: 基于ARM920T的S3C2440Nor Flash:Spansion公司的S29AL016****(*表示后面没写出的符号)问题1:在H-Flasher的Flash Select

2011-10-05 19:10:13 950

原创 Linux su 和 sudo

su命令主要用来切换用户,也可以使用使用某个用户来运行某条命令。su [-lm] [-c 命令] [username]比如我们要切换到root用户,我们可以使用su -,使用'-'的意思是使用root的环境变量(使用login-shell变量文件),然后提示输入root密码,就可以切换到root用户了,也可以切换到其他用户,即指定username;注意:切换到某个用户或者以某个用户的权

2011-10-03 16:36:16 1329

原创 电脑开机后没有不能进BIOS的解决方案

最近,电脑出现了问题,开机后花屏,具体问题不太清楚,但是电脑进入BIOS后就开始花了,排除了显卡驱动的问题,锁定为电脑硬件的问题,我把显卡和内存条都下了,使用橡皮擦了下金手指,安装上去后,这次发现电脑启动进BIOS滴的一声都没有了,电脑应该BIOS都没进去,到网上搜了一下解决方案

2011-09-19 11:33:06 5562

转载 构造函数不能声明为虚函数

构造函数不能声明为虚函数的原因:1.所谓虚函数就是多态情况下只执行一个,而从继承的概念来讲,总是先构造父类对象,然后才能使子类对象,如果构造函数设为虚函数,那么你在构造父类的构造函数时就不得不显式的调用构造,还有一个原因就是为了防错误的发生,试想如果你在子类中一不小心重写了个

2011-09-17 16:39:49 959

转载 析构函数可以是纯虚函数

在某些类里声明纯虚析构函数很方便。纯虚函数将产生抽象类——不能实例化的类(即不能创建此类型的对象)。有些时候,你想使一个类成为抽象类,但刚好又没有任何纯虚函数。怎么办?因为抽象类是准备被用做基类的,基类必须要有一个虚析构函数,纯虚函数会产生抽象类,所以方法很简单:在想要成为抽象类

2011-09-17 16:36:09 2874

转载 Samba 服务使用的端口和协议

Samba服务所使用的端口和协议: 1)Port 137 (UDP) - NetBIOS 名字服务 ; nmbd2)Port 138 (UDP) - NetBIOS 数据报服务3)Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Serve

2011-09-16 09:23:57 174737

原创 Linux 父子进程在没有同步时出现的问题

今天想熟悉下匿名管道,于是在Linux上写了一个简单的程序,其中父进程与子进程之间通过匿名管道进行通信,父进程使用fork创建一个子进程,使用管道的写端,并关闭管道的读端;子进程使用管道的读端,关闭管道的写端。    如果没有父子进程的同步,则父进程与子进程的运行没有先后顺序

2011-09-15 17:13:43 1650

原创 字节对齐

在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int,long,float等)的变量,也可以是一些复合数据类型(如数组,结构,联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个

2011-09-15 16:31:53 643

原创 电脑故障 - BIOS花屏

今天启动电脑,发现电脑在启动过程中字符显示不正常,一闪一闪的,机器使用的是操作系统是Redhat Linux,在启动过程中看不到平时会出现的Linux一些服务的开启过程,而且在启动完成后(看不到,但是确实启动完成了,可以在远程使用telnet登录上去)在本机上看不到登录会话,使用

2011-09-15 14:24:33 2506

转载 同步与异步,阻塞与非阻塞

同步阻塞IO在这个模型中,应用程序(application)为了执行这个read操作,会调用相应的一个system call,将系统控制权交给kernel,然后就进行等待(这其实就是被阻塞了)。kernel开始执行这个system call,执行完毕后会向应用程序返回响应,应

2011-09-11 16:45:51 848

原创 Linux xinetd 与 vsftpd

vsftpd是一个非常安全的ftp服务程序~它可以独立工作,即工作在standalone模式下(在vsftpd.conf中设置listen=no);它也可以在xinetd守护程序下运行,即修改/etc/xinetd.d/vsftpd,设置disable=no,然后重启xine

2011-09-11 11:14:21 2897 1

原创 Linux 守护进程

守护进程也称精灵(daemon)进程,是生存期较长的一种进程。它们常常在系统自举时启动,仅在系统关闭时才终止。因为它们没有控制终端(使用ps查看进程时,其终端名设置为‘?’号,终端前台进程组ID设置为-1),所以说它们是在后台运行的。大多数守护进程都以超级用户(用户ID为0)

2011-09-10 20:30:00 830

原创 Linux 进程组,作业,会话的理解

1. 进程组每个进程除了有一个进程ID之外,还属于一个进程组。进程组是一个或多个进程的集合。通常,它们与同一作业相关联,可以接收来自同一终端的各种信号。每个进程组有一个唯一的进程组ID。每个进程组都可以有一个组长进程。组长进程的标识是,其进程组ID等于其进程ID。组长进程

2011-09-10 19:55:09 5391

原创 Linux 串行终端,虚拟终端,伪终端,控制终端,控制台终端的理解

终端:输入和输出设备(键盘 + 显示器)。串行终端:与机器的串口对应,每一个串口对应一个串行终端,串口对应的是物理终端。虚拟终端:一台PC只有一套键盘和显示器,也就只有一套终端设备,但是可以通过Ctrl + Alt + F1 ~ Ctrl + Alt + F6切换到字符终

2011-09-10 18:49:15 4896 2

原创 linux 配置服务的两个图形化命令

字符模式下的图形化服务配置 1.ntsysv 命令    使用ntsysv命令可以配置linux所提供的系统服务~2.setup 命令    使用setup命令可以配置有关X window,系统服务,网络配置,键盘配置,防火墙配置,验证配置~

2011-09-10 17:03:20 1731

原创 linux xinetd 与 telnet

使用操作系统版本:RHEL5今天想体验下linux 下的telnet服务,本以为linux的telnet服务是默认开启的,所以在windows上的telent客户端直接连过去,竟然连不通~查看一下linux开启的服务,没有找到telnet服务,到网上百度一下,发现telnet

2011-09-10 16:56:11 4862

原创 linux exec函数族

有6种不同的exec函数,它们常常被统称为exec函数。这些exec函数使得UNIX进程控制原语更加完善。用fork可以创建进程,用exec可以执行新程序。exit函数和两个wait函数处理终止和等待终止。这些是我们需要的基本的进程控制原语。#include int ex

2011-09-09 15:00:21 1058

转载 wait 和 waitpid 差别

1、一个进程正常结束:(1)return(2)exit(3)_exit和_Exit(4)进程的最后一个线程使用return(5)进程的最后一个线程使用phread_exit2、一个异常进程结束:(1)abort(2)signal(3)cance

2011-09-09 14:18:19 737

原创 fork 与 vfork 的区别

一个现有进程可以调用fork函数来创建一个新进程~#include pid_t fork(void);由fork创建的新进程为子进程。fork函数被调用一次,但返回两次,两次返回的唯一区别是子进程的返回值为0,而父进程的返回值则是新子进程的进程ID。将子进程ID返

2011-09-08 17:22:32 757

原创 Linux 几个特殊进程

ID为0的进程通常是调度进程,常常被称为交换进程(swapper)。该进程是内核的一部分,它并不执行任何磁盘上的程序,因此也被称为系统进程。ID为1的进程通常是init进程,在自举过程结束时由内核调用。该进程的程序文件在UNIX早期版本中是/etc/init,在较新版本中是/

2011-09-08 16:17:33 1409

转载 C语言异常处理

在C中,goto语句是不能跨越函数的,而执行这类跳转功能的是setjmp和longjmp。这两个函数对于处理发送在深层嵌套函数调用中的出错情况是非常有用的。setjmp参数env的类型时一个特殊类型jmp_buf,这一数据类型是某种形式的数组,其中存放在调用longjmp时能

2011-09-08 15:45:10 1444

转载 几种页面置换算法

地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断。当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。常见的置换算法有:1)最佳置换算法(OPT)(理想置换算法)这是一

2011-09-07 18:56:44 45648 5

原创 存储管理动态分配几种策略

1)首次适应:首次适应策略要求空闲区按其起始地址从小到大排列,当某一用户作业要求装入内存时,存储分配程序从起始地址最小的空间区开始扫描,直到找到满足该作业要求的空闲区为止。2)循环首次适应:在查找空闲区时,不再每次从链首开始查找,而是从上一次找到的空闲区的下一个空闲区开始查找

2011-09-07 16:34:18 3791

原创 Mysql 内联结与外联结

内联结可分为:等值联结,自然联结(其实等值联结和自然联结是相同的,惟一的区别是,在使用两张表的同名列进行联结操作后,重复列之一不出现在联结结果中,其实这是通过select语句中的结果集的列来控制的)内联结可使用where语句,也可以使用(inner) jion...on...

2011-09-07 14:34:11 1514

转载 操作系统存储管理一些策略

存储管理的的基本目的:提高内存的使用率并方便用户使用内存。一个存储管理系统应完成内存的分配与回收、地址重定位、存储保护与扩充内存等四个方面的功能。 分区存储管理:分为固定式分区与可变式分区存储管理对于固定式分区存储管理来说,其分区大小是固定的,而一个作业的大小不可

2011-09-07 12:39:21 3010

原创 静态地址重定位 与 动态地址重定位

静态地址重定位:即在程序装入内存的过程中完成,是指在程序开始运行前,程序中的各个地址有关的项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变,故成为静态重定位。优点:无需硬件支持缺点:1)程序重定位之后就不能在内存中搬动了;2)要求程序的存储空间是连续的,不

2011-09-07 11:23:03 8790 1

原创 操作系统内存管理(分页与分段)

分段分段本是由于8086是16位总线,为寻址20位内存地址而增加的。在32位操作系统中,分段依然有用。1)段描述符:描述该段的安全属性,为一个64位长的值。在实地址模式中,只需要使用段寄存器(CS,DS,SS和ES)就可以了,每个段寄存器都是16位的,对应于地址总

2011-09-07 11:18:04 8482

原创 Linux 使用atexit注册终止处理程序

我们可以让一个进程即将终止时调用我们定义的函数~一个进程可以注册多达32个函数,这些函数将由exit自动调用。我们称这些函数为终止处理程序,需要使用atexit函数来注册这些函数。#include int atexit(void (*func)(void));

2011-09-02 20:36:42 1282

多个公司面试题

包含很多IT公司的面试题,对找工作的同学有帮助

2011-09-08

enigma C++实现(附讲解PPT)

对于初学密码学的同学们很有帮助,对于想了解二战时候的enigma密码机的同学们也很实用。

2010-03-25

操作系统原理算法C语言实现

有关操作系统原理算法的C语言代码,比较完整,对学习操作系统原理的同学们很实用。

2010-01-27

非常好的进程调度程序

使用VC++6.0实现多个进程调度的算法

2009-11-21

实现停止等待协议C++代码

修改后的停止等待协议,可以很清楚的讲解协议的实现过程

2009-11-15

空空如也

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

TA关注的人

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