HashMap_个人页

个人头像照片 HashMap
个人头像照片
21
0
0

个人介绍

暂无个人介绍

擅长的技术

  • C++
  • Python
  • Shell
获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息

2024年06月

  • 06.06 20:42:46
    发表了文章 2024-06-06 20:42:46

    C++开发工具

    探索免费编译器选项:GCC, Clang( LLVM 前端), Cygwin, MinGW, IBM C/C++ Compiler, Visual Studio, Intel System Studio 和 Oracle Developer Studio。调试工具有GDB, Kdevelop, DDD, Valgrind, Sanitizers, Record and Replay及Windows Debugging Tools。开始你的编程之旅!
  • 06.03 23:51:36
    发表了文章 2024-06-03 23:51:36

    Linux多进程编程详解

    进程反应了进程执行的变化。 进程的状态分为三种 ,`运行态`,`阻塞态`,`就绪态` 在五态模型中分为以下几种,新建态,就绪态,运行态,阻塞态,终止态。 运行态:进程占用处理器正在运行。 就绪态:进程已具备运行的条件,等待系统分配处理器运行。 阻塞态 :又称为等待(`wait`)态,或睡眠(`sleep`)态,指进程不具备运行条件,正在等待事件的完成。 新建态:进程已被创建,还未加入就绪队列。
  • 06.03 23:47:58
    发表了文章 2024-06-03 23:47:58

    C++中的函数重载

    C++的运算符重载允许改变运算符行为,使其能应用于自定义类型。重载函数可为类成员或全局函数,需匹配运算符原本的参数和返回类型。示例展示了如何重载`+`和`<<`运算符。此外,友元函数能访问类的私有成员,增加代码灵活性。继承是OOP的关键特性,如单一继承(类B直接继承类A)和多级继承(类D继承类C,类C继承类B)。多态通过虚函数实现,允许基类指针调用派生类的方法,如`Animal`的`makeSound()`在`Cat`和`Dog`中的不同实现。
  • 06.03 23:45:07
    发表了文章 2024-06-03 23:45:07

    彩某社js逆向

    该内容是一个关于逆向工程的案例分析,讲述了如何破解财联社登录接口的加密参数`sign`。作者发现`sign`是通过`sha1`和`md5`混合加密的。经过调试,找到了加密算法的过程,并用JavaScript模拟了这个过程,最终成功生成了与接口相同的加密字符串。附有JS代码示例。

2024年05月

  • 05.31 08:56:29
    发表了文章 2024-05-31 08:56:29

    selenuim实战优化

    该文介绍了如何使用Selenium将数据直接存入MySQL数据库,以苏宁易购网站为例。首先,优化了JSON数据写入,通过pymysql连接数据库,创建`books`表并读取JSON文件插入数据。接着,整合代码实现直接从网页抓取价格和标题,使用Selenium自动化滚动加载页面,定位元素,清洗数据并使用参数化查询插入到`books`表。主程序循环遍历多页数据,最后关闭数据库连接。
  • 05.30 19:36:52
    发表了文章 2024-05-30 19:36:52

    redis学习笔记

    Redis是一款由C语言编写的内存中的键值对数据库,包含多种数据结构如字符串、散列、列表、集合、有序集合等。它支持复制、LUA脚本、LRU策略、事务和持久化。Redis官网提供详细文档,可用于分布式缓存、防止缓存击穿、分布式锁、消息队列等场景。安装Redis 7.0.15版,需下载、配置环境变量、修改配置文件以设置守护进程、关闭保护模式和密码。Redis基础命令包括键操作如DEL、EXISTS、EXPIRE等,数据类型包括字符串和哈希等,如HSET用于设置哈希表字段值,HGET用于获取字段值。
  • 05.30 19:35:27
    发表了文章 2024-05-30 19:35:27

    算法--topk问题

    该文介绍了TopK问题的两种解决方案:大小根堆和快排分割。使用大根堆可以找到前K小的元素,小根堆则用于找到前K大的元素。示例代码展示了如何用C++实现这两个方法。快排分割通过不断调整数组结构,找到第K大或第K小的元素。文章提供了相应的代码示例及输出结果。
  • 05.30 18:21:15
    发表了文章 2024-05-30 18:21:15

    C++命名空间

    `C++`中的命名空间用于分割全局作用域,减少命名冲突。定义命名空间如`namespace expression {...}`,可使用`using`运算符或`using namespace`指令引用。案例展示如何在命名空间`Person`内定义变量和函数。注意:命名应具描述性,头文件中命名空间放预处理指令后,避免全局变量和过度使用`using`。命名冲突时可设命名空间别名。
  • 05.30 18:16:35
    发表了文章 2024-05-30 18:16:35

    C++如何实现一致性算法

    一致性哈希是一种用于分布式系统的负载均衡算法,旨在减少服务器增减导致的数据迁移。当有N台服务器时,通过哈希环将请求均匀分布到每台服务器,每台处理N/1的请求。若使用缓存如Redis,可进一步处理高并发场景。算法将哈希值空间视为环形,服务器和请求哈希后定位到环上,按顺时针方向找到第一台服务器作为负载目标。提供的C++代码实现了MD5哈希函数,以及一致性哈希算法的物理节点、虚拟节点和算法本身,以实现节点的添加、删除和请求映射。
  • 05.30 18:14:24
    发表了文章 2024-05-30 18:14:24

    C++实现socket通信

    了解如何实现socket通信以及TCP连接的过程中发生了什么
  • 05.28 17:46:56
    发表了文章 2024-05-28 17:46:56

    Python selenuim实战

    使用Selenium爬取苏宁易购商品信息,步骤包括打开网页、翻页、获取信息并保存至本地JSON文件。核心功能有滚动页面加载更多商品(模拟鼠标滚动)和抓取每页数据(提取标题和价格)。主程序通过循环实现自动翻页,直到无下一页按钮,最终将所有数据整合到一个JSON文件中。完整代码展示了所需导入的模块、滚动页面及获取数据的函数,以及主程序逻辑。
  • 05.28 07:49:59
    发表了文章 2024-05-28 07:49:59

    加密算法

    逆向工程主要关注思维和分析方法,而非仅仅代码。它涉及破解加密数据和处理动态请求参数。常见的加密算法包括线性散列(如MD5)、对称加密(AES, DES)和非对称加密(RSA)。MD5加密是不可逆的,但可通过暴力破解。DES/AES使用相同密钥进行双向加密,而RSA则使用公钥加密,私钥解密。Base64是一种编码而非加密,易于解码。理解加密类型和解密策略是逆向的重点。
  • 05.28 07:45:02
    发表了文章 2024-05-28 07:45:02

    爬虫逆向操作

    安装PyExecJS和Node.js环境,使用Python通过PyExecJS调用JavaScript代码。微信公众号平台案例中,通过抓包分析找到密码加密函数,使用js改写工具修改后保存为weixin.js。利用PyExecJS的execjs.get()、compile()和eval()方法执行加密函数,获取加密后的密码数据。示例代码展示了如何调用weixin.js中的getPwd函数。
  • 05.23 11:33:52
    发表了文章 2024-05-23 11:33:52

    AES算法逆向实战--某思路

    本文是关于AES加密算法的逆向分析实战。通过跟栈方式找出加密位置,发现在`jslencode`函数中完成账号和密码加密。使用CryptoJS库,示例代码展示了如何用AES进行加密,其中`397151C04723421F`作为key,加密手机号和密码,并打印结果。

2023年09月

  • 09.03 16:06:08
    发表了文章 2023-09-03 16:06:08

    C++ 核心编程

    # C++核心编程 本阶段主要针对C++==面向对象==编程技术做详细讲解,探讨C++中的核心和精髓。 ## 1 内存分区模型 C++程序在执行时,将内存大方向划分为**4个区域** - 代码区:存放函数体的二进制代码,由操作系统进行管理的 - 全局区:存放全局变量和静态变量以及常量 - 栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等 - 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收 **内存四区意义:** 不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编程 ### 1.1 程序运行前 ​ 在程序编译后,生成
  • 09.03 16:03:20
    发表了文章 2023-09-03 16:03:20

    C++ 中的引用

    # C++引用 > 引用是C++新增的复合类型,引用是已定义变量的别名。 - 引用的用途:做函数的形参和返回值。 ## 引用的语法 ```c 引用类型 & 引用名 = 原变量名 ``` **案例** ```c++ #include<cstdio> #include<iostream> using namespace std; void swap(int&a,int&b) //通过引用交换数值 { int tmp = a; a = b; b = tmp; } int main() {
  • 09.03 16:02:16
    发表了文章 2023-09-03 16:02:16

    C++ lambda 表达式

    # C++ `lamdba` 表达式 > Lambda表达式是C++11引入的一个新特性,它允许我们在需要函数对象的地方,使用一种更加简洁的方式定义匿名函数。Lambda表达式通常用于`STL`中的算法、回调函数、事件处理程序等场合。 Lambda表达式的基本语法为: ```c++ Copy Code[capture list](parameter list) mutable exception -> return type { function body } ``` ## `lamdba`表达式在什么场合下使用 C++11 lambda表达式可以用来创建匿名函数,也就是没有函数名的
  • 09.03 16:01:14
    发表了文章 2023-09-03 16:01:14

    C++中的friend 关键字

    # C++中的友元 `friend` > 友元是用关键字声明的函数或类 类的非成员函数可以访问类的保护成员和私有成员(如果它被声明为类的友元),这是通过在外部函数声明的前面加上关键字`friend`完成的 声明方式 ```cpp friend <类型><友元函数名>(<参数表>); ``` ## 友元函数 > 友元函数只是一个普通的函数,而并非一个类的成员函数,它可以在任意地方调用,友元函数通过对象名来访问该类的私有成员或共有成员。 ```c++ #include<iostream> using namespace std; class MYclass { public:
  • 09.03 15:59:55
    发表了文章 2023-09-03 15:59:55

    C++运算符重载

    # **C++中的运算符重载** > **C++中的运算符重载是一种特殊的函数,它允许我们改变已有的运算符的行为。在C++中,运算符可以被定义为类的成员函数或全局函数,用于对相应类型的操作数进行特定的计算。运算符重载使得我们能够自定义用户定义类型的行为,以便像内置类型一样使用** ​ **在实现运算符重载时,需要注意以下几点:** 1. **运算符重载函数必须是类的成员函数或全局函数。** 2. **运算符重载函数的名称必须与要重载的运算符相同。** 3. **运算符重载函数的参数类型和个数必须与要重载的运算符所接受的参数类型和个数相匹配。** 4. **对于二元运算符,可以通
  • 09.03 15:57:27
    发表了文章 2023-09-03 15:57:27

    Linux系统编程

    ## 标准I/O > input&output 它是一切实现的基础 stdio 标准 IO sysio 系统ui ## 文件IO:   标准IO:优点是可移植性高,缺点是性能比系统 IO 差,且功能没有系统 IO 丰富。   系统IO:因为是内核直接提供的系统调用函数,所以性能比标准 IO 高,但是可移植性比标准 IO 差 如果一个问题的解决需要用到`IO`,而且这个时候标准`IO`和系统`IO`都能解决问题的时候,我们优先使用标准`IO`; 原因 : 移植性好、合并系统调用 ## 虚拟地址空间 内核区:内核区是受保护的,用户不能对其进行读写操作,否则会引发段错误。

2023年08月

  • 08.28 21:33:37
    发表了文章 2023-08-28 21:33:37

    C++中的类、结构体、指针和引用

    在介绍类和对象之前,我们先来简单了解一下面向过程和面向对象的概念。 面向过程是指程序的设计者关注于问题的解决过程,通过将问题分解为多个步骤和函数,并将这些步骤按照顺序组合起来实现程序的功能。这种方法的优点是结构清晰、容易理解和调试。但是随着程序的规模增大,面向过程的程序会变得越来越复杂,难以维护和扩展。 而面向对象则是一种更高级别的程序设计方式,它强调将数据和对数据的操作封装起来,形成一个对象。对象既包含数据又包含操作数据的方法,可以直接对外提供服务。这种方法具有高度的灵活性、可重用性和扩展性,易于维护和修改。
  • 发表了文章 2024-06-06

    C++开发工具

  • 发表了文章 2024-06-04

    彩某社js逆向

  • 发表了文章 2024-06-04

    Linux多进程编程详解

  • 发表了文章 2024-06-04

    C++中的函数重载

  • 发表了文章 2024-05-31

    selenuim实战优化

  • 发表了文章 2024-05-30

    redis学习笔记

  • 发表了文章 2024-05-30

    算法--topk问题

  • 发表了文章 2024-05-30

    C++命名空间

  • 发表了文章 2024-05-30

    C++如何实现一致性算法

  • 发表了文章 2024-05-30

    C++实现socket通信

  • 发表了文章 2024-05-28

    Python selenuim实战

  • 发表了文章 2024-05-28

    加密算法

  • 发表了文章 2024-05-28

    爬虫逆向操作

  • 发表了文章 2024-05-23

    AES算法逆向实战--某思路

  • 发表了文章 2023-09-03

    C++运算符重载

  • 发表了文章 2023-09-03

    C++ 中的引用

  • 发表了文章 2023-09-03

    C++中的friend 关键字

  • 发表了文章 2023-09-03

    C++ 核心编程

  • 发表了文章 2023-09-03

    Linux系统编程

  • 发表了文章 2023-09-03

    C++ lambda 表达式

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息