
系统综合
文章平均质量分 76
天_剑
这个作者很懒,什么都没留下…
展开
-
字节序整理
字节序即字节顺序,一般都是针对多字节数据类型而言。一般宽字节指int 或者double等非char类型。分类:1. 大端序。2. 小端序。3. 混合序。大端序:数值的高位放在内存地址的低位,数值的其他低位依次放在内存地址的后续(地址增加)位置上。代表:power_pc小端序:与大端序相反,数值的低位放在内存的低位,数值的后续高位一次放在内原创 2015-01-30 10:03:52 · 518 阅读 · 0 评论 -
openssl aes 高级加解密
上一篇博客写了openssl des加密解密的调用方法,这一篇继续上一篇的openssl探索。由于DES已经被破解过,因此在某些安全级别高的信息加密上需要更加安全的加密算法,这就诞生了AES(高级加解密),AES是从多种加密算法选出来一种算法(Rijndael)作为AES加密标准的加密算法。其实严格准确点来说AES应该是一个加密标准,而习惯上我们认为AES就标准使用的加密算法(Rijndael原创 2015-02-12 09:38:15 · 980 阅读 · 0 评论 -
openssl DSA 数字签名与签名验证
与RSA不同,DSA的主要功能是做数字签名与签名验证。DSA不具备对数据进行加密解密的功能,因此在使用上面请注意。往往有很多使用者误认为非对称加密算法都可以对数据进行加解密处理,其实不然,DSA就是一个很好的例子。使用C/C++ 调用openssl/crypt库进行DSA测试,代码如下:/* gcc -o test test_dsa.c ../../libcrypto.a原创 2015-02-12 11:45:26 · 3046 阅读 · 0 评论 -
openssl des 加密解密
最近在整理关于数据加密解密的资料,整合C/C++、.NET、JAVA三个平台的数据加解密资料,使得三个平台调用相关函数加解密得到的结果都是一致的,兼容的。ps:最后整理的资料可能会以电子版pdf的形式发出来,如果对您有益,请关注一下。C/C++是直接使用openssl库的crypte模块进行数据加解密的,下面介绍一下openssl/crypt调用DES进行加解密的过程。代码很容易理原创 2015-02-12 09:21:01 · 4774 阅读 · 0 评论 -
openssl blowfish 加密解密
前面对AES的使用进行了研究,这一节,介绍Blowfish,Blowfish也是一种对称加密算法,采用分组加密的模式。C/C++采用openssl/crypt库调用,过程比较简单,直接看下面代码:#include #include "evp.h" #define BREAK_ERROR(msg){\ fprintf(stderr,"error break [%s]\原创 2015-02-12 10:04:41 · 2014 阅读 · 0 评论 -
openssl RSA 非对称加解密
一直在研究数据加密与解密,一直都没有好好的整理过这些知识,趁现在有时间,稍加整理,以便更多的人知道如何去加解密数据,少走弯路。相关的整理文档可能后续会以电子版pdf的形式发出来。非对称加密算法安全性确实相对更高,但同样效率/速度也更低一些,毕竟非对称加密的计算量更大。RSA是目前使用最广的一种非对称加密算法,既可以对数据进行加密解密,也可以对数据进行签名验证。使原创 2015-02-12 11:31:40 · 1507 阅读 · 0 评论 -
openssl 哈希算法 实战 MD5/SHA系列/DSS/RIPEMD160
前面介绍了openssl 常见的几种对称加密算法的调用方法,这里继续研究一下openssl的单项哈希函数,EVP对加密算法进行了很好的封装,提供了简单易用的调用端口,使用非常方便。在开头需要说明的一点是,随着计算机计算能力的提升,破解MD5变得门槛越来越低。因此很多文章说SHA更加安全,原因主要是SHA的哈希值更长。但如果使用穷举破解时,需要遍历原数据的空间,如果MD5与SHA的计原创 2015-02-12 11:13:44 · 2612 阅读 · 0 评论 -
openssl 调用实例
openssl C/C++ SSL安全套接层SOCKET示例,各个API功能详见OPENSSL官方文档。客户端:/* g++ -o client ssl_client.cpp -lssl -lcrypt */#include #include #include #include #include #include #include // openssl heade原创 2015-02-09 15:28:14 · 1318 阅读 · 0 评论 -
openssl 自建CA,并签发证书
第一部分:自建CA注:为了更好管理自建CA,在下文中,为没有特殊说明的情况,CA根目录都是指的自建CA的根目录。1. 创建CA根目录,并初始化一些文件:mkdir $HOME/mycacd $HOME/mycamkdir certs private confecho "01" > serialecho "" > index.txtcat > conf/gen_原创 2015-02-09 09:21:08 · 1332 阅读 · 0 评论 -
ZLIB 1.2.8 压缩整理
压缩过程:1. 初始化压缩结构体:defalteInit()初始化strm。2. 配置strm.avail_in,strm.next_in,strm.avail_out,strm.next_out四个值,然后调用deflate进行压缩,需要注意的是,每次调用deflate之前,strm.avail_out需要大于0,即每次调用都需要保证有足够的输出缓冲区,最好等于输入缓冲长。如果没有更多的输入,则flush值为z_FINISH,否则为z_NO_FLUSH.调用之后,需要把输出的数据拷贝到其他的缓冲区中去原创 2015-01-31 14:10:53 · 700 阅读 · 0 评论 -
浮点数精度整理
浮点数存在精度问题主要是由于小数二进制化的逻辑与整数二进制化不一样。整数二进制化:除二取余。如:7的二进制为:00000111。小数二进制化:乘二取整数。如:0.75的二进制为:0.11 即 0.75 = 0.5+0.25 = 2^(-1) + 2^(-2) 由此,浮点数7.75的二进制形式为:111.11。IEEE浮点结构:原创 2015-01-30 11:25:54 · 827 阅读 · 0 评论 -
BASE64编码 C实现
BASE64编码可以看作是一种数据可视化的编码集,也可以看作是一种简单的数据加密处理。即展现出数据编码的思路,也满足了数据可视化的要求。同时展现出一种简单的数据加密方法。在处理很多数据缓冲区的时候,对于不可见字符,都比较头疼,不知道这些不可见字符到底是什么,即使是比对他们的ASSCII,也比较麻烦,需要中断或者调试或者修改代码等到。所以很多时候会将这些不可见字符转换为可视化的串,从而检原创 2015-01-30 14:28:05 · 827 阅读 · 0 评论 -
openssl DH密钥协商
本文将介绍在通信时经常需要使用到的动态密钥协商,之所以需要使用动态密钥,主要增加数据的安全性,即使个别密码会被破译,但是不会影响到其他通信数据的安全。本节中还是跟前面一样,使用openssl/crypt库来进行DH密钥交换的模拟,如果在你的项目中需要用到DH密钥交换,你可以对下面的流程进行整理,然后运用到项目中,需要说明的是openssl跟JAVA/.NET平台进行密钥交换时,可能会出原创 2015-02-13 17:14:06 · 5508 阅读 · 3 评论