C++学习day--12 循环的应用,暴力破解密码和输出动图

news2024/11/28 14:44:49

节 职场修炼:程序员到底能干多久

现状:
很多程序员,过了 30 岁,纷纷转行。
原因:
1 )薪资过万后,很难进一步提升
2 )可替代性高,在新人面前,没有绝对优势。
3 )结婚成家后,在 996 工作环境下,难以承受。
解决方案:
1 )选择合适的方向
前端开发, PHP 开发等方向,技术含量低,可替代性高。
2 )掌握企业的核心业务,核心技术,向技术管理方向发展
3 )掌握外包开发核心技能,逐步拓展外包人脉

 第 2 节 项目拓展 1-循环的经典应用:暴力破解密码

项目需求:假设密码只由6位数字组成,写一个程序破解这个密码!!

新建一个项目1,项目名字叫测试代码,写上如下代码,并运行,

 client.cpp

#include <iostream>
#include <Windows.h>
#include <string>
using namespace std;
int main(void) {
    string pwd; 
    while (1) {
        cout << "Please input your password: ";
        cin >> pwd;
        if (pwd == "000123") {
            break;
        }
        else {
            cout << "Password error." << endl;
        }
    }
    cout << "login success" << endl; 
    cout << "1. 注册" << endl;
    cout << "2. 管理" << endl; 
    cout << "3. 查询" << endl; 
    cout << "4. 删除" << endl; 
    system("pause");
    return 0;
}

 新建项目2,项目名字叫黑客攻击,并写上如下代码

crack.cpp:

#include <iostream>
using namespace std;
int main(void) {
    char dict[64]; //10+26+26+1 = 63;
    char tmp[32];
    int index = 0;
    for (int i = 0; i < 10; i++) {
        dict[index++] = '0' + i;
    }
    dict[index] = '\0';
    int n = index; // 字符个数
    for (int p1 = 0; p1 < n; p1++) {
        for (int p2 = 0; p2 < n; p2++) {
            for (int p3 = 0; p3 < n; p3++) {
                for (int p4 = 0; p4 < n; p4++) {
                    for (int p5 = 0; p5 < n; p5++) {
                        for (int p6 = 0; p6 < n; p6++) {
                            tmp[0] = dict[p1];
                            tmp[1] = dict[p2];
                            tmp[2] = dict[p3];
                            tmp[3] = dict[p4];
                            tmp[4] = dict[p5];
                            tmp[5] = dict[p6];
                            tmp[6] = '\0';
                            cout << tmp << endl;
                        }
                    }
                }
            }
        }
    }
    return 0;
}

就是说client.cpp是要输入数据的,crack.cpp是输出数据的。

在控制台:
crack.exe | client.exe

这个是管道的操作方式,就是用前面那个程序的输出作为后面那个程序的输入,这个管道要掌握!! 

运行结果:

破解成功!! 

第 3 节 项目拓展 2-宅男福利:控制台上跳极乐净土(动画版)

_T( ) 补充说明 : 如果项目使用的是字符集是” 多字节字符集 ” ,那么在使用 easyx 的相关接口时 , 就不需要使用 _T( )。
如果项目使用的是字符集是 ”Unicode 字符集 或其他字符集,那么在使用 easyx 的相关接口时 , 就要使用 _T( ) 。建议两种都会用。
不论什么字符集 , 使用_T() , 则都可以适应 . _T( )是一个特殊的 ”, 其中的参数是常量时 , 才有效果 . 如果参数是变量, 则可能会无效 . 所以, 当加载的文件名是变量时 , 有两个方法 :
方法 1) 把字符集改为 使用 多字节字符集
方法 2) 使用自定义的函数 , 进行字符编码的转换

 Demo:

首先该文件夹下得有图片资源:

 极乐净土:

打开:

 

一共148张图片。

要设置项目属性:

 字符集改为——使用多字节字符集。 (否则有问题)

最后编码设置为中文编码:

不然播放没音乐!! 很多人神恶魔都做好了,也能运行出图片,但是就是没有音乐!就是因为编码没有设置。

#include <iostream>
#include <graphics.h>
#include <Windows.h>
#include <string>
#include <string.h>
#include <MMSystem.h> // 播放音乐需要的头文件
#pragma comment(lib, "winmm.lib") //告诉编译器, 加载 winmm.lib 库文件
using namespace std;
#define COUNT 148
int main(void) {
    char fileName[128]; 
    std::cout << "正在加载..." << std::endl;
    //预加载
    IMAGE images[COUNT];
    for (int i = 1; i <= COUNT; i++) {
        sprintf(fileName, "极乐净土\\images2\\_%04d_图层-%d.jpg",  i-1, COUNT-i+1);
        loadimage(&images[i - 1], fileName);
    }
    initgraph(800, 450);
    mciSendString(_T("play 滑脚怪.mp3 repeat"), 0, 0, 0);//重复播放"滑脚怪.mp3"
    while (1) {
        for (int i = 0; i < COUNT; i++) {
            putimage(0, 0, &images[i]);
            Sleep(75);
        }
    }
    system("pause"); 
    closegraph();
    return 0;
}

这里不得不补充一下sprintf()函数的用法,%0md,就是说数据没有m位时,用0补充。但是没有%2md这种用法,数据不足m位时,用2补充,没有这种用法,只能用0补充!! 

运行结果:我录制了一个视频让大家看效果:

链接:https://pan.baidu.com/s/1adM_ZRyRTQW_Uf-0Nr6giA?pwd=8080 
提取码:8080

 是不是感觉很有趣!后面马上用图形化界面做黑客攻击系统!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/572834.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习ChatGPT,从这几个中文提示词教程开始

ChatGPT已经火爆了一段时间了&#xff0c;很多用户也体验了ChatGPT&#xff0c;他的回答非常的强大。但有些人能够得到很好地回答&#xff0c;有些人得到的答案&#xff0c;并不是非常的完美&#xff0c;其实这个短时间内&#xff0c;和一个叫做提示工程&#xff08;Prompt Eng…

在城市之间“闪送”,同城即时速递的正确解法

从5月14日母亲节到“520”网络情人节&#xff0c;鲜花店、餐饮店和蛋糕店里&#xff0c;满是闪送骑手师傅进进出出的身影。 在成都&#xff0c;一位闪送师傅通过抖音展示了自己忙碌的一天&#xff1a;“了不起的母亲节&#xff0c;凌晨就开始预约单&#xff0c;&#xff08;系…

SSM框架学习-REST内容、案例及快速开发

1. REST简介 当访问行为不同时&#xff08;例如insert、delete等等&#xff09;&#xff0c;REST风格描述形式的路径是相同的&#xff0c;那如何区分&#xff1f; 所以&#xff0c;通过路径请求方式&#xff0c;我们就可以区分对资源进行了何种操作&#xff1b; 而REST风格对资…

[PyTorch][chapter 35][经典卷积神经网络-1 ]

前言&#xff1a; ILSVRC&#xff08;ImageNet Large Scale Visual Recognition Challenge&#xff09;是近年来机器视觉领域最受追捧也是最具权威的学术竞赛之一&#xff0c;代表了图像领域的最高水平。 ImageNet数据集是ILSVRC竞赛使用的是数据集&#xff0c;由斯坦福大学李…

太强啦!!!ChatGPT 能上传文件了,能执行 Python 代码啦!

ChatGPT又出试验型新模式&#xff0c;不少网友陆续收到代码解释器Alpha测试资格。 ​ 简单来说&#xff0c;这个模式提供两个功能&#xff1a;执行Python代码&#xff0c;接受文件上传下载。 为什么是这两个功能的组合&#xff1f; 可以看目前最火的一条测试结果&#xff0c…

MySQL——锁:概述、全局锁、表级锁、表锁(读锁、写锁)、元数据锁、意向锁、行级锁、行锁、间隙锁临键锁

5.锁 5.1 概述 ​ **锁是计算机协调多个进程或线程并发访问某一资源的机制。**在数据库中&#xff0c;除传统的计算资源&#xff08;CPU、 RAM、I/O&#xff09;的争用以外&#xff0c;数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必…

Linux---用户切换命令(su命令、sudo命令、exit命令)

1. su命令 root用户拥有最大的系统操作权限&#xff0c;而普通用户在许多地方的权限是受限的。 普通用户的权限&#xff0c;一般在其HOME目录内是不受限的。 一旦出了HOME目录&#xff0c;大多数地方&#xff0c;普通用户仅有只读和执行权限&#xff0c;无修改权限。 su 是…

chatgpt国内镜像有什么优势?Gpt有什么强大的功能

chatgpt国内镜像有什么优势&#xff1f;其实这个是很多人都想知道的问题&#xff0c;小编觉得有必要给大家说一下&#xff0c;毕竟这个东西有优点也有缺点&#xff0c;下面我们一起来看看吧。 一.chatgpt国内镜像的优势 1.网络延迟更低 使用国内的ChatGPT镜像&#xff0c;可…

多目标遗传算法NSGA-II改进策略

上篇写道了关于多目标遗传算法NSGA-II原理详解及算法代码实现&#xff0c;本文将继续在这篇文章的基础上更深一步的向前探索&#xff0c;探索方向为&#xff1a; 基于NSGA-II算法的固有缺点&#xff0c;着重对其算法提出改进策略&#xff0c;并予以代码实现。同样&#xff0c;本…

医药公司药品品种分析

分析一家医药公司药品管线品种首先要罗列出该制药企业的上市品种及在研品种&#xff0c;然后再逐一分析之。 一般医药公司药品管线品种分析需要从多个角度进行解析&#xff0c;如&#xff1a;市场规模&#xff0c;市场占有率、政策法规、基药目录、国家/省市医保目录、新农合目…

【智慧排水】智慧排水监测系统助力城市抗洪排涝建设

随着城市的发展和生活水平的提高&#xff0c;城市排水系统面临着各种挑战和难题。虽然国家已经大力建设和改造雨污分流系统&#xff0c;以解决城市排水问题&#xff0c;但在实际应用中仍然存在着诸多难题&#xff0c;如雨污混接、偷排漏排、管道堵塞淤积、管道溢流和内涝等问题…

一文看懂GPT风口,都有哪些创业机会?

新时代的淘金者&#xff0c;低附加价值的创业要谨慎&#xff0c;高附加价值、低技术门槛创业也要谨慎&#xff0c;主干道边上的创业也要谨慎。不少朋友看完不淡定了&#xff0c;干什么都谨慎&#xff0c;回家躺平好了&#xff0c;我有个朋友&#xff0c;靠ChatGPT&#xff0c;半…

功率信号源的使用方法有哪些

功率信号源是一种常见的电子设备&#xff0c;主要用于产生各种功率信号&#xff0c;例如直流信号、正弦信号等。功率信号源广泛应用于工业、科研、医疗等领域&#xff0c;例如电机驱动、电子仪器仪表、医疗设备等。本文将详细介绍功率信号源的使用方法和注意事项。 图&#xff…

【Java基础篇】逻辑控制

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a;Java.SE&#xff0c;本专栏主要讲解运算符&#xff0c;程序逻辑控制&#xff0c;方法的使用&…

springcloud-alibaba (04)GatewayFilter 自定义全局过滤器-认证和授权

GatewayFilter 自定义全局过滤器 内置的过滤器已经可以完成大部分的功能&#xff0c;但是对于企业开发的一些业务功能处理&#xff0c;还是需要我们自己编写过滤器来实现的&#xff0c;那么我们一起通过代码的形式自定义一个过滤器&#xff0c;去完成统一的权限校验。 开发中的…

这 30 多种免费和开源的 Kubernetes 监控工具,性能和可靠性尽在掌控之中!

Kubernetes 是当今最受欢迎和广泛使用的容器编排和管理平台之一。它提供了高度可扩展的架构&#xff0c;使得在分布式环境中部署、管理和扩展应用程序变得更加容易。然而&#xff0c;随着应用程序数量和规模的增长&#xff0c;对于有效监控和管理 Kubernetes 环境变得至关重要。…

Cenots7安装Docker centos安装Docker centos7安装Docker

Cenots7安装Docker centos安装Docker centos7安装Docker 在CentOS 7上安装Docker&#xff0c;可以按照以下步骤进行操作&#xff1a;1、(可选)更新系统软件包2、安装Docker依赖3、添加Docker稳定版仓库4、安装Docker5、启动Docker服务6、设置Docker开机自启7、验证Docker安装是…

UDP 的报文结构和注意事项知识点总结

目录 1. UDP报文结构(★) 2. 注意事项(★) 1. UDP报文结构(★) 一个UDP数据报由UDP报头和UDP正文部分组成,如图: 1) 源端口标识的是数据发送方的主机上某个程序,目的端口标识的是数据接收方的主机上某个程序,比如我在宿舍要去二食堂吃炸酱面(在食堂第八个窗口).我的宿舍在11栋…

LeetCode算法心得——字典序最小回文串

大家好&#xff0c;我是晴天学长&#xff0c;这是一道常见的回文串的判断的变形题&#xff01;&#x1f4aa;&#x1f4aa;&#x1f4aa; 1 &#xff09;字典序最小回文串 2) .算法思路 双指针判断一次&#xff0c;做一次修改是回文串&#xff0c;直接输出 3&#xff09;.代码…

案例22:基于Springboot+vue的患者交流系统设计与实现开题报告

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…