随笔分类 - 【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基于身份签名方案不需要通信双方用户间交换密钥,无需保存密钥簿、无须使用第三方服务就可进行安全通信和相互验证签名。虽然该方案任然是一种类公钥密码方案,但它不是去直接
阅读全文
摘要:
今天在学习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 }
没接触过,函数指针可以这样用,第一感觉应该是第六行所示的使用方式;怀疑是其书写错误,后来在实际在电脑上测试了下,结果是正确的,这两种方式都能成功运行。。。。。
阅读全文
今天在学习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 }
没接触过,函数指针可以这样用,第一感觉应该是第六行所示的使用方式;怀疑是其书写错误,后来在实际在电脑上测试了下,结果是正确的,这两种方式都能成功运行。。。。。
阅读全文
摘要:堆和栈的区别可以用如下的比喻来看出:
使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就
走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自
由度小使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由
度大
阅读全文
摘要:--------------------------------------------------------------------------------------------------- 高效排序时间限制:1000 ms | 内存限制:65536 KB 描述 比普通排序快一些的排序。输入 第一行包含一个整数T,表示有T组数据。对于每组数据:第一行包含一个数字N(<100,000), 表示该组数据由N个元素;第二行包含N个数,就是这N个元素的值( <100,000 )。 输出对于每组数据输出一行,包含排序好后的N个元素,要求从小到大排序,相邻2个元素间有个空格,末尾无空格
阅读全文
摘要:最近在写一个程序是涉及到文件的操作,其中遇到一个问题是打开文件后判断文件是否为空,刚开始想到了每次打开文件都是向文件添加数据,就是以a+方式打开,就想到用ftell函数直接得到当前位置如果不为0则说明文件不为空,但是这样程序运行一直没打到想要的效果,调试时发现打开文件后用ftell函数得到的当前位置值为零,自己不禁产生疑惑,后来翻了下谭浩强的《C程序设计》上面写着“用a+方式打开的文件,原来的文件不被删除,位置指针移到文件末尾”。为了消除疑惑自己写代码测试下,看下具体情况。 测试代码:#include <stdio.h>int main(void){ int ch; FILE *f
阅读全文
浙公网安备 33010602011771号