随笔分类 -  【02】C/C++

摘要:1. 基于身份认证协议简介一般基于公钥密码体质的签名认证方案,像RSA都需要用户交换私钥或公钥,一般的认证过程如图1所示:B要验证消息m是否是A发送的,首先要获得A的公钥A先计算m的摘要,再用自己的私钥对摘要进行加密生成对m的个人签名。A将m和签名一起发送给B。B验证A的签名,先用A的公钥进行解密,得到A对m计算所得的摘要。B计算m的摘要与解密出的摘要进行比对,相同则可以确定m是A发送的。 图1 基于RSA算法签名认证过程Shamir基于身份签名方案不需要通信双方用户间交换密钥,无需保存密钥簿、无须使用第三方服务就可进行安全通信和相互验证签名。虽然该方案任然是一种类公钥密码方案,但它不是去直接 阅读全文
posted @ 2012-09-13 14:16 ljhero 阅读(1870) 评论(0) 推荐(0)
摘要:今天在学习linux下c程序设计时,看到函数指针时,在书上看到一个例子如下: 1 int get_max(int i, int j, int k, int (*pt)(int,int))2 {3 int ret;4 5 ret = pt(i,j); 6 // ret = (*pt)(i,j);7 8 return ret;9 } 没接触过,函数指针可以这样用,第一感觉应该是第六行所示的使用方式;怀疑是其书写错误,后来在实际在电脑上测试了下,结果是正确的,这两种方式都能成功运行。。。。。 阅读全文
posted @ 2011-03-14 20:50 ljhero 阅读(1203) 评论(3) 推荐(0)
摘要:堆和栈的区别可以用如下的比喻来看出: 使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就 走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自 由度小使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由 度大 阅读全文
posted @ 2011-02-23 10:18 ljhero 阅读(170) 评论(0) 推荐(0)
摘要:--------------------------------------------------------------------------------------------------- 高效排序时间限制:1000 ms | 内存限制:65536 KB 描述 比普通排序快一些的排序。输入 第一行包含一个整数T,表示有T组数据。对于每组数据:第一行包含一个数字N(<100,000), 表示该组数据由N个元素;第二行包含N个数,就是这N个元素的值( <100,000 )。 输出对于每组数据输出一行,包含排序好后的N个元素,要求从小到大排序,相邻2个元素间有个空格,末尾无空格 阅读全文
posted @ 2010-12-01 21:21 ljhero 阅读(451) 评论(0) 推荐(0)
摘要:最近在写一个程序是涉及到文件的操作,其中遇到一个问题是打开文件后判断文件是否为空,刚开始想到了每次打开文件都是向文件添加数据,就是以a+方式打开,就想到用ftell函数直接得到当前位置如果不为0则说明文件不为空,但是这样程序运行一直没打到想要的效果,调试时发现打开文件后用ftell函数得到的当前位置值为零,自己不禁产生疑惑,后来翻了下谭浩强的《C程序设计》上面写着“用a+方式打开的文件,原来的文件不被删除,位置指针移到文件末尾”。为了消除疑惑自己写代码测试下,看下具体情况。 测试代码:#include <stdio.h>int main(void){ int ch; FILE *f 阅读全文
posted @ 2010-12-01 10:47 ljhero 阅读(1586) 评论(0) 推荐(0)