u014023993的专栏

学习C++过程中遇到的一些问题及解决方法,记录学习C++路上的点点滴滴

又踩到字符串的坑了

今天,又一次被C/C++中的字符串给坑了。当然,是自己挖的坑。 听到字符串,学习C/C++的小伙伴们的第一想法是不含特殊字符的字符数组,譬如包含0-9/a-zA-Z的字符数组。 维基百科对字符串的定义是:字符串(英语:string),是由零个或多个字符组成的有限序列。它是编程语言中表示文本的数...

2019-05-31 22:25:02

阅读数 6

评论数 0

CryptAcquireContext返回NTE_BAD_KEY_STATE

我们知道,通过rand函数产生的随机数安全性不高,为了保证随机数的安全性,我们一般会选择一个随机数种子,通过该种子增加破解随机数的难度。C/C++下是如下代码: #include <stdlib.h> #include <time.h> ...

2019-05-25 14:40:33

阅读数 32

评论数 0

Windows下动态库符号命名规则

C的名称修饰规则 1. 对于使用C调用协议(__cdecl)的函数,在函数名称前加一下划线,不考虑参数和返回值 2. 对于使用快速调用协议(__fastcall)的函数,在函数名称前后各加一@符号,后跟参数的长度,不考虑返回值。例如extern "C" int __fast...

2019-05-09 21:31:27

阅读数 14

评论数 0

听说,有些网站明文存储用户密码?

前段时间爆出 Facebook 明文存储用户密码,多达 6 亿用户,而它的用户总数是 27 亿,占比 22 % 。 看到这个消息,是不是很震惊? 无独有偶,之前有听过很多银行系统的密码也是明文(真假没有验证)。 在读书时,忘记学校网站密码后,直接打电话给 IT 人员,IT 人员让我说出可能的...

2019-05-06 21:13:28

阅读数 44

评论数 0

Linux下减小动态库大小的方法

在一些业务场景下,需要对动态库的大小进行限制,主要有如下几种方法: 1. 编译选项使用-Os,表示以最小化大小为优化方向 2. 去除-g选项,进而去除调试信息 3. 通过strip裁剪符号及调试信息 4. 只导出必要符号 Linux默认导出所有符号,并不仅仅导出你开放的接口! 定义如下...

2019-04-29 19:07:49

阅读数 87

评论数 0

GDB常用调试指令

编译程序时需要加上-g,之后才能用gdb进行调试:gcc -g main.c -o main 常用命令 回车键:重复上一命令 (gdb)help:查看命令帮助,具体命令查询在gdb中输入help + 命令,简写h (gdb)run:重新开始运行文件(run-text:加载文本文件,ru...

2019-04-06 10:13:23

阅读数 15

评论数 0

栈上分配内存函数Alloca

对于堆上内存分配函数,大家都比较熟悉。对于C而言,有calloc、malloc、realloc函数;对于C++而言,有new、new[]。 之前一直以为alloca函数也是堆上分配内存的函数,因为它和calloc及malloc太像了。并且,在STL源码及其他内存分配器中,都是用Alloc表示堆上...

2019-03-21 18:49:28

阅读数 98

评论数 0

Golang 获取执行文件所在目录

有如下几种方法: func getExecutePath1() string { dir, err := filepath.Abs(filepath.Dir(os.Args[0])) if err != nil { fmt.Println(err) } fmt.Println(di...

2019-03-17 19:28:07

阅读数 99

评论数 0

Golang遍历目录下的文件

package main import ( "fmt" "io/ioutil" "log" "path/filepath" ) func Li...

2019-03-17 19:18:18

阅读数 17

评论数 0

Golang 文件读写操作

package main import ( "fmt" "io" "log" "os" "path/filepath&...

2019-03-17 18:50:05

阅读数 20

评论数 0

代码中的那些偷懒

在开发新功能,维护老功能,或者重构优化前人的代码时,不知有没有踩过坑,或者觉得前人为了偷懒而使用了很多不可持续的方法。 业务逐渐丰富后,代码也日益复杂。复杂的代码维护成本很高:看的时候很费时间,改的时候也战战兢兢的。所以,为了少犯错,就很有可能偷懒。看别人的代码,会发现偷懒的代码;回过头看自己的...

2019-03-16 22:24:54

阅读数 36

评论数 0

谈谈测试和代码质量

毕业找工作那会,有个开发的同学被分配去做测试,当时很不理解。为什么他平时都是用 Java,怎么去做测试呢?当时对测试的认知就是点点点。 在工作一段时间后,对于测试依然有一定程度的偏见。为什么有偏见,还不是因为无知!人类对于不了解的东西,很容易形成偏见。 当时觉得开发的功能,进行一下简单的测试就...

2019-03-11 22:43:34

阅读数 79

评论数 0

Linux下tar.xz文件解压方法

对于tar.xz文件,有如下两种方法(假设文件是a.tar.xz): 方法1: 1.xz -d a.tar.xz,得到a.tar文件 2. tar -xvf a.tar:对a.tar文件进行解压 方法2: tar xvJf a.tar.xz 其中,“.xz”是一种压缩文件格式;...

2019-03-07 19:07:55

阅读数 22

评论数 0

DHCP 原理及抓包分析

目录 1. DHCP 简介 1.1 DHCP 作用 1.2 DHCP 工作机制 2.  DHCP 交互流程 2.1 正常交互流程 2.2 租约 2.3 客户端状态机 2.4 参数配置 3.  DHCP 报文 3.1 报文类型 3.2 报文格式 3.3 抓包 4. DHCP...

2019-02-26 22:44:14

阅读数 189

评论数 0

通过Git更新代码到GitHub

第一步:查看当前的git仓库状态 git status 第二步:更新全部 git add * 第三步:Commit git commit -m "更新说明" 第四步:拉取当前分支最新代码 git pull 第五步:push到远程m...

2019-02-11 23:28:34

阅读数 31

评论数 0

通过Git上传本地文件到GitHub

1. 安装Git 2. 打开Git-Bash 3. 配置用户名及邮箱 4. 设置SSH key 先查看是否有SSH key 如果没有,那么生成一个(邮箱为github账户对应的邮箱) 5. 为github账号配置ssh key 将 C:\Users\Admin...

2019-02-11 23:21:11

阅读数 39

评论数 0

对称加密非对称加密简介

在密码学领域,有两种基本的加密方式:对称加密及非对称加密。对称加密,顾名思义,就是解密的密钥和加密的密钥相同(单钥密码学);非对称加密,顾名思义,解密密钥与加密密钥不同。 对称加密 对称密码学的典型算法有:AES、Twofish, Serpent, Blowfish, CAST5, Kuzny...

2019-02-01 10:01:07

阅读数 64

评论数 0

数字证书原理

证书,也叫做数字证书,是网络世界中的“身份证”。证书将持有者的身份信息和公钥关联到一起,保证公钥确实是这个证书持有者的,通过证书就可以确认持有者的身份。证书由权威的、公正的、可信任的第三方机构颁发,我们把证书的颁发机构称为CA(Certificate Authority),相当于现实生活中的公安局...

2019-02-01 09:46:50

阅读数 55

评论数 0

字符集与字符编码

目录 1.  概述 1.1 基本概念 1.2 映射关系 2.  ASCII字符集及编码 3.  GBXXXX字符集及编码 3.1 GB2312 3.2 GBK 3.3 GB 18030 3.4 代码页 4.  Big5字符集&编码 5.  Unicod...

2019-01-29 23:11:02

阅读数 54

评论数 0

UDP Flood攻击

本文转载自华为企业互动社区 大家好,强叔又来了!上一期,强叔给大家介绍了SYN Flood的攻击和防御,本期强叔将带领大家一起来学习一下另一种常见的流量型攻击:UDP Flood。 讲UDP Flood之前,强叔还是先从UDP协议讲起。在讲SYN Flood的时候,我们知道了TCP协议是一种面...

2019-01-29 15:01:30

阅读数 1385

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭