学习记录
阿达L
这个作者很懒,什么都没留下…
展开
-
软件安全学习笔记——C语言
库函数:printf system总结:我们使用库函数去完成一些功能,库函数是编译器提供给我们使用的。但是我们如果要使用某一个库函数,就需要包含相应的头文件。比如 printf 属于<stdio.h> system 属于<stdlib.h>关键字:是C语言已经使用了的一些单词。关于赋值时的类型转换:我们在赋值的时候,如果赋值符号左右两边的类型不一致。会自动的将右边的类型,转换为左边的类型,然后再赋值。这个叫做隐式转换...原创 2020-12-06 13:14:52 · 193 阅读 · 0 评论 -
如何用long long保存大文件的大小数据
一个DOWRD只能保存32位数据,也就是2^32=4294967296,大约4G大小。在fileData结构体中超过4G会保存到SizeHight中,此时如果需要正确接收文件大小,就需要先定义一个long long(64位),先使long long等于高位,此时高位数据保存在long long的低32位部分,使用位移运算符,往高位移动32位,此时高位数据处于正确位置,再加上地位数据,最终拼接成了完整文件大小。可以使用 CString FileSize; FileSize.Fo...原创 2020-11-28 20:48:11 · 863 阅读 · 0 评论 -
C语言 使用Cryptdll计算文件md5值
typedef struct { ULONG i[2]; ULONG buf[4]; unsigned char in[64]; unsigned char digest[16];} MD5_CTX;//定义函数指针typedef void (WINAPI* PMD5Init)(MD5_CTX* context);typedef void (WINAPI* PMD5Final)(MD5_CTX* context);typedef void (WINAPI* PM.原创 2020-11-28 20:39:36 · 405 阅读 · 0 评论 -
C语言学习记录——对文件异或加密
最为简单的加密方式,这里基本思想是把一串数据和密码扔进去,使用密码对数据依次异或。考虑到密码一般都比数据短,这里将密码反复使用。void En_decryptFile(char* pstr, char* psw, int len) { int i, j; i = j = 0; while (i < len) { if (psw[j] == NULL) { j = 0; } pstr[i] = pstr[i] ^ psw[j]; i++; j++;原创 2020-11-28 20:30:12 · 822 阅读 · 0 评论