- 博客(8)
- 资源 (14)
- 收藏
- 关注
原创 C++中获取日期函数gmtime和localtime区别
函数gmtime和localtime的声明如下:struct tm * gmtime (const time_t * timer);struct tm * localtime (const time_t * timer);它们均接收一个time_t的const指针类型,time_t类型通常是一个大整数值,该整数值表示自UTC时间1970年1月1日00:00以来经过的秒数即UNIX时间戳,可直接调用time函数获取,如下面测试代码中的time(&rawtime)语句。它们均返回类型为t
2020-06-29 16:57:09 5730 2
原创 C和C++安全编码笔记:并发
并发是一种系统属性,它是指系统中几个计算同时执行,并可能彼此交互。一个并发程序通常使用顺序线程和(或)进程的一些组合来执行计算,其中每个线程和进程执行可以在逻辑上并行执行的计算。这些进程和(或)线程可以在单处理器系统上使用分时抢占式的方式(用一种时间分片的方法使每个线程和(或)进程中的执行步骤交错进行)、在多核/多处理器系统中,或者在一个分布式计算系统中执行。多个控制流并发执行是现代计算环境的重要组成部分。7.1 多线程:多线程不一定是并发的。一个多线程程序可以以这样一种方式构建,即它的线程不会并发执行
2020-06-25 21:25:05 2637 2
原创 SSL/TLS单向认证和双向认证介绍
为了便于理解SSL/TLS的单向认证和双向认证执行流程,这里先介绍一些术语。1. 散列函数(Hash function):又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字”指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values, hash codes, hash sums)的指纹。散列值通常用一个短的随机字母和数字组成的字符串代表。好的散列函数在输入域中很少出现散列冲突。散列函数的工作原理如下
2020-06-19 15:05:20 9923 4
原创 JWT(JSON Web Token)简介及实现
JWT(JSON Web Token):是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间作为Json对象安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用HMAC SHA256或RSA等对JWT进行签名。JWT的组成:它是一个很长的字符串,中间用点(.)分隔成三个部分。它的三个部分依次是:Header(头部)、Payload(载荷)、Signature(签名)。JWT默认是不加密的。Header:是一个Json对象,描述JWT的元数据,例子如
2020-06-16 14:38:37 1366
原创 C和C++安全编码笔记:格式化输出
C标准中定义了一些可以接受可变数量参数的格式化输出参数,参数中包括一个格式字符串。printf()和sprintf()都是格式化输出函数的例子。格式化输出函数是由一个格式字符串和可变数目的参数构成的。在效果上,格式化字符串提供了一组可以由格式化输出函数解释执行的指令。因此,用户可以通过控制格式字符串的内容来控制格式化输出函数的执行。格式化输出函数是一个变参函数,也就是说它接受的参数个数是可变的。变参函数在C语言中实现的局限性导致格式化输出函数的使用中容易产生漏洞。6.1 变参函数:<stdarg.
2020-06-13 10:39:01 1697
原创 通过OpenSSL的接口实现Base64编解码
对openssl genrsa产生的rsa私钥pem文件,使用普通的base64解码会有问题,如使用https://blog.csdn.net/fengbingchun/article/details/85218653 中介绍的方法,一是有可能不能从返回的结果中直接使用strlen来获得最终字符的大小,因为返回的结果中可能会有0x00;二是pem文件中会有换行符,每行的字节长度超过64个字节就会有换行,普通的base64解码中不会对换行符有处理。在OpenSSL中,默认情况下,base64行长度限制为64个
2020-06-05 15:54:08 4785 4
原创 从openssl rsa pem文件中提取公私钥数据实现
RSA为非对称加密算法,关于其介绍可以参考:https://blog.csdn.net/fengbingchun/article/details/43638013。OpenSSL最新版为 1.1.1g,在Windows上和Linux上编译源码时均可以生成可执行文件openssl。通过此执行文件即可产生rsa公钥-私钥对,如产生长度为3072的密钥对,具体命令及执行结果如下图所示:3072是指modulus即模数长度为3072bit,即384字节。LD_LIBRARY_PATH=../lib ./o
2020-06-04 14:55:36 11388 2
原创 ASN.1简介及OpenSSL中ASN.1接口使用举例
ASN.1(Abstract Syntax Notation One)是一套标准,是描述数据的表示、编码传输、解码的灵活的记法。它提供了一套正式、无歧义和精确的规则以描述独立于特定计算机硬件的对象结构。OpenSSL的编码方法就是基于该标准。ASN.1是一种结构化的数字对象描述语言,它包括两部分:数据描述语言和数据编码规则。ASN.1的数据描述语言允许用户自定义基本的数据类型,并可以通过简单的数据类型组成更复杂的数据类型。ASN.1是ISO和ITU-T的联合标准,它本身只定义了表示信息的抽象句法,但是没
2020-06-02 09:28:28 8158 1
软件自动更新_base64编解码_xml文件的生成与读取
2010-08-26
PDF417二维条码基础理论
2010-08-15
基于特征的图像配准算法研究
2010-08-05
小波矩特征提取matlab代码
2010-07-24
在win mobile中如何使正在运行的软件自动升级更新
2010-07-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人