
C++
文章平均质量分 51
web安全工具库
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
用指针和动态内存分配的方法输入10,2,30, 4,5,按输入顺序逆置排序,输出排序后的元素,即输出5,4,30,2,10
这里我们使用了冒泡排序算法,通过比较相邻元素的大小,并进行交换操作来实现排序。该问题涉及到了指针和动态内存分配的运用,以及对数组进行排序和逆序输出的实现。以下是一个基于C语言的技术博客,包含了对输入数据进行排序和逆序输出的详细代码案例。,用于存储输入的数字数据。同时,我们还需要定义一个指向该结构体的指针 。接下来,我们需要从标准输入中读取 10 个数字数据,并将它们存储到 。 分配足够的内存空间,以存储输入的数字数据。 的大小,并分配了能够存储 10 个 。,以便进行动态内存分配和排序操作。原创 2023-10-17 17:41:48 · 193 阅读 · 0 评论 -
C/C++学习 -- RSA算法
RSA算法的核心原理是基于大素数的数学问题的难解性,利用两个密钥来完成加密和解密操作。选择公钥和私钥:选择一个公钥e,满足1 < e < Φ(n),且e与Φ(n)互质。目前尚无有效的算法能够在合理的时间内分解大素数,因此RSA算法被认为是安全的。非对称性:RSA算法使用一对公钥和私钥,其中公钥用于加密,私钥用于解密。加密:使用公钥(e, n)对明文进行加密,得到密文c = m^e (mod n),其中m为明文。计算n和Φ(n):计算n = p * q 和Φ(n) = (p-1) * (q-1)。原创 2023-10-09 16:01:47 · 1904 阅读 · 0 评论 -
C/C++学习 -- Base64算法
这两个示例中的C和C++代码都实现了Base64编码,将原始数据转换为Base64格式的字符串。Base64编码的原理非常简单,它将3个字节的二进制数据分为4个6位的块,然后将这些6位块映射到Base64字符集中的相应字符。可打印字符: Base64编码产生的字符全部来自可打印ASCII字符集,这意味着编码后的数据可以轻松地嵌入到文本中,不会引起编码后数据的不可读性。固定长度: Base64编码的结果长度总是4的倍数,这有助于对齐和分割编码后的数据。将6位块映射到Base64字符集中的字符。原创 2023-10-07 09:12:00 · 3435 阅读 · 0 评论 -
C/C++学习 -- SHA-256算法
SHA-256代表"Secure Hash Algorithm 256-bit",是一种安全的哈希算法,输出固定长度的256位(32字节)哈希值。通过本篇文章,你应该对SHA-256算法有了更深入的了解,并能够使用C和C++编程语言实现SHA-256哈希算法来保护数据的完整性和安全性。固定长度输出:SHA-256算法的输出是256位,无论输入的数据大小如何,始终产生相同长度的哈希值。困难的碰撞攻击:要找到两个不同的输入,产生相同的SHA-256哈希值,需要极大的计算能力和时间。原创 2023-10-06 21:18:15 · 2422 阅读 · 0 评论 -
C/C++学习 -- HMAC算法
HMAC,全称为HMAC-MD5、HMAC-SHA1、HMAC-SHA256等,是一种在数据传输中验证完整性和认证来源的方法。它结合了哈希函数和密钥,通过在数据上应用哈希函数,生成一个带密钥的散列值,用于验证数据的完整性。总之,HMAC算法是一种强大的加密技术,用于验证数据的完整性和源自身。HMAC算法的核心思想是将密钥与数据结合,然后应用哈希函数。下面是一个简单的C语言示例,演示如何使用HMAC-SHA256算法来计算HMAC值。安全性高: HMAC算法提供了高级别的安全性,因为它依赖于强大的哈希函数。原创 2023-10-05 16:18:31 · 1994 阅读 · 0 评论 -
C/C++学习 -- 分组加密算法(DES算法)
实际的DES实现需要更多的细节和安全性考虑,因此建议使用专门的密码库来进行实际的加密工作,以确保数据的安全性。每一轮的加密过程都包括数据的扩展、与子密钥的异或运算、S-盒替代(Substitution)、P-盒排列(Permutation)等步骤,以混淆和加密数据。分组密码:DES将数据分为64位的块,并对每个块进行加密,因此只能加密64位的数据。56位的密钥被分为16个48位的子密钥,每个子密钥在每一轮的加密中都会使用。DES算法一共有16轮的迭代过程,每一轮都会使用不同的子密钥。原创 2023-10-04 13:36:21 · 968 阅读 · 0 评论 -
C/C++学习 -- 分组密算法(3DES算法)
DES是一种已被广泛使用的加密算法,但在安全性方面存在一些漏洞,因此3DES应运而生,它通过对数据进行三次DES加密来提高安全性。3DES算法在信息安全领域有着广泛的应用,通过对数据进行三次加密,提高了数据的安全性,同时兼容已经使用DES加密的数据,是一种可靠的加密算法。对称加密:3DES使用相同的密钥进行加密和解密,这意味着加密和解密的过程都使用相同的密钥,这种密钥称为"秘钥"。三次加密:3DES对数据进行三次DES加密,分别使用3个不同的子密钥,增加了安全性。原创 2023-10-03 21:52:00 · 1214 阅读 · 0 评论 -
MFC -- 键盘全局HOOK
一、新建一个DLL动态链接库二、创建一个被exe文件调用的函数BOOL sethook() { hk = SetWindowsHookEx(WH_KEYBOARD, //hook类型,键盘hook KeyboardProc, //回调函数 hM, //第三方的注入dll,全局hook使用,句柄通过主函数获取 0);//线程id,填0表示hook所有程序 if (hk == NULL)//如.原创 2022-01-17 10:54:21 · 791 阅读 · 0 评论 -
MFC -- 实现键盘HOOK
一、新建一个MFC应用程序二、选择资源视图,打开界面设置(IDD_KEYBOARDHOOK_DIALOG)三、删除原有的控件,从工具箱添加一个按钮四、修改按钮的标题属性,双击进入开始编写代码五、代码编写1、编写HOOK按钮事件,点击按钮创建一个hook,返回句柄//1、创建一个hook hk = SetWindowsHookEx(WH_KEYBOARD, //hook类型,键盘hook K...原创 2022-01-14 23:21:43 · 858 阅读 · 0 评论 -
C++实现Socket连接通信
一、打开两个VS2019,创建两个控制台程序分别命名为client和servers二、编写服务端servers1、包含头文件及库文件#include <WinSock2.h>#pragma comment(lib,"ws2_32.lib")#pragma warning(disable:4996)2、初始化及反初始化代码,记下来就行,永远不变//初始化代码,死记下来就行 WORD wVersion = MAKEWORD(2, 2); .原创 2022-01-10 09:29:25 · 7053 阅读 · 1 评论 -
C++函数重载
一、概念:函数名相同,同名函数的形参列表(参数个数,类型,顺序)必须不同二、源码:#include <iostream>double add(double a, double b){ return a + b;}int add(int a, int b){ return a + b;}int add(int a, int b,int c){ return a + b+c;}int main(){ cons原创 2021-11-06 13:30:09 · 417 阅读 · 0 评论 -
C++多继承与多态
没有人不辛苦,只是有人不喊疼。。。---- 网易云热评一、多继承,一个子类可以同时基类多个基类,这样的继承方式被称为多重继承。#include <iostream>using namespace std;class Phone{//电话基类public: Phone(const string& num):m_num(num){} void call(const string& num){ cout << m_num &l..原创 2020-11-18 09:04:54 · 345 阅读 · 0 评论 -
C++文件操作
别把自己过得像个落难者,忙着告诉所有人你有多不幸,成长本来是孤立无援的过程,你够努力,全世界都会对你和颜悦色。。。---- 网易云热评#include <iostream>#include <fstream>using namespace std;int main(void){ofstream ofs("file.txt");//类似fprintf,写文件ofs << 123 << ' ' <<...原创 2020-11-16 14:55:37 · 147 阅读 · 0 评论 -
C++继承
晚上坐出租车回家时,没事和师傅闲聊,随口问了句师傅,什么是生活,师傅缓缓的说了一句,我以前不喜欢开车。。。。---- 网易云热评一、继承1、概念:通过一种机制表达类型之间共性和特性的方式,利用已有的数据类型来定义新的数据类型,这种机制就是继承.2、语法:class 子类:继承方式1 基类1,继承方式2 基类2,...{...};继承方式:-->public(公有继承)-->protected(保护继承)...原创 2020-11-12 08:44:37 · 254 阅读 · 0 评论 -
C++静态成员变量及函数
没有很快乐,也没有不快乐,好像不该这样,但也只能这样,成长也许如此,行于奔溃边缘又慢慢自愈吧。。。---- 网易云热评一、静态成员变量1、普通成员变量属于对象,每个对象都会包含一份独立的普通成员变量;而静态成员变量不属于对象,一个类中静态成员变量只有一份2、静态成员变量不能在构造函数中定义和初始化,需要在类的外部单独的定义和初始化。3、静态成员变量和全局变量类似,被放在数据段,可以把静态成员变量理解为被限制在类中使用的全局变量.4、访问静态成员变量方法:类名::静...原创 2020-11-11 08:26:42 · 186 阅读 · 0 评论 -
this函数和析构函数
你可以因为现任不好而分手,但千万不要认为别人更好,永远有人更好,眼下便是更好。。。---- 网易云热评一、this函数对于普通的成员函数,this指向调用该函数的对象对于构造函数,this指向正在创建的对象#include <iostream>using namespace std;class Teacher{public: /*Teacher(const string& name,int age) :m_name(name),m_age(ag.原创 2020-11-10 08:30:37 · 227 阅读 · 0 评论 -
C++类和对象
你知道什么最可怕么?就是明明是因为失望才离开,他却以为是你不够喜欢。。。---- 网易云热评一、类定义#include <iostream>using namespace std;//实现一个表示学生的类//struct Student{class Student{public: //行为:成员函数 void eat(const string& food){ cout << "我在吃" << food << .原创 2020-11-09 10:15:58 · 182 阅读 · 0 评论 -
C++指针与引用
小时候骗妈妈和朋友偷偷出去玩,现在骗朋友说妈妈不让出去,可是小时候只是单纯的贪玩,而长大却是人情世故委婉拒绝。。。。---- 网易云热评一、引用型函数参数1、可以将引用用于函数的参数,这时形参就是实参的别名,通过形参可以直接修改实参变量的值,同时还可以避免传参的过程,减小函数调用开销,提高代码执行效率。#include <iostream>using namespace std;void swap1(int* x,int* y){ *x = *x ^ *y; *.原创 2020-11-04 08:45:07 · 144 阅读 · 0 评论 -
C++函数与值传递
朋友圈里未必都是朋友,但黑名单里总有故人。。。---- 网易云热评一、布尔类型#include <iostream>using namespace std;int main(void){ bool b = false; //boolalpha:流控制符,以字符串形式打印bool cout << boolalpha << "b=" << b << endl; cout << "sizeof(b)=".原创 2020-11-04 08:40:05 · 166 阅读 · 0 评论 -
C++基本语法
去经历去后悔,去做你想做的,去选你所爱,而不是别人眼里正确的,你的一辈子应该为自己而活。。。---- 网易云热评一、输出语句#include <iostream>#include <cstdio> //C++风格int main(void){ //输出语句 std::cout << "hello world!" << std::endl; printf("hello world!\n"); return 0;}二、命.原创 2020-11-03 08:35:48 · 176 阅读 · 0 评论