自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 资源 (1)
  • 收藏
  • 关注

原创 2021-07-12

研二base64工具写了个base64小工具,用于linux上,明天有空移植到windows上工作心得工作慢下来,对每一步都要有记录,这样就不会翻来覆去折腾,白白浪费很多时间。工具整好了,事半功倍。要注意任何一个工作的动作都不是偶然的,注意每次干的事情,尽量用程序代替重复的工作。...

2021-07-12 23:41:31 111

原创 工作记录 2021/07/08 - 学习记录

研二工作记录当遇到“未识别的结构体 class”等报错信息时,说明此时存在c++被c调用的情况。需要修改当前函数文件类型为c++,并将编译文件也相应修改。当遇到405等网络请求报错信息时,说明对方服务不支持本地请求,可能为SSL协议,需要将网络请求方法该为https。 还是需要学习HTTP协议SM3的16~64轮中的j是个大问题,在hmac或签名或杂凑出问题时首先检查这个点。编译打包时需要检查的点:Android.mk 编译flagAndroid.mk 编译文件和目标Applicat

2021-07-08 11:32:17 124

原创 微信扫码登录原理 token 2021/7/4 - 学习记录

研二微信扫码原理微信扫码登录的前提是用户的移动客户端已经登陆了账号并拿到了移动终端的token,这个token作为对用户身份的认证将在后续提供身份识别。服务器向电脑端发送一个含电脑设备识别码的二维码,移动客户端扫码后将二维码信息和用户的token发送给服务端,相当于告诉服务端这个设备是“我”在登录。服务器接收后发送一个临时token给移动客户端,相当于告诉移动客户端:这个桌面端的信息如下,是否确认?此时这个token只是临时token,因为需要用户确认才能真正用,在确认前这个token应当有什么识

2021-07-04 22:52:58 862

原创 Linux内核:进程数据结构 - 2021-06-26 学习记录

研二Linux内核:进程数据结构进程数据结构在sched.h文件中以tash_struct的结构体保存。其中包含大致8个分类:进程编号进程信号处理进程状态进程亲属关系进程内存管理文件系统操作权限运行统计内核栈在linux内核版本2.2中,结构体如下:struct task_struct {/* these are hardcoded - don't touch */ volatile long state; /* -1 unrunnable, 0 runnable, &g

2021-06-26 00:45:15 148

原创 三权分立 - 2021/6/23 学习记录

研二三权分立应用系统的三权分立指配置、授权和审计的三权分立。配置指对应用系统进行配置,使之能正常运行;授权指对使用应用系统的账号进行管理,在此过程中提高应用系统的安全等级;审计指对上述两项工作进行监督指导,及时上报危险的操作。由此,系统管理员设计分为三个角色,分别为:系统管理员、安全保密管理员与安全审计员。一、系统管理员职责 1(一)定期或不定期巡检,确保机房设备的安全和正常运行,发现异常情况及时处理;(二)掌握网络设备配置情况,负责网络和设备的管理维护,及时排除故障;(三)安装

2021-06-24 01:10:48 2215 1

原创 工作记录 - 2020/6/19 学习记录

研二工作记录未来研究方向还会是应用层,所以要把LINUX和TCPIP好好学一下。另外早睡早起保护头发!!!

2021-06-20 22:57:54 71

原创 工作记录 - 2020/6/18 学习记录

研二工作记录如果程序崩溃,首先写主函数调用一遍。如果无法通过主函数调用 ——检查free的内存释放,先把所有的内存释放都注释掉再跑一遍。内存不释放不会立刻导致程序崩溃,因为内存容量是很足的。如果此时没有崩溃,则确定是内存出现了重复释放的问题。这时候一个一个取消内存的注释再行测试。检查如果内存释放无误则问题基本确定是指针调用越界的问题。这时候尝试放大空间开辟的大小(先测试指针开辟空间,然后测试数组开辟空间)。检查在初始化变量时是否将指针声明为了普通 变量,如:将**unsigned char *

2021-06-19 10:27:25 74

原创 工作记录 - 学习记录 2021/6/7

研二工作记录对比了两套代码,发现确实是有一套不崩溃另一套崩溃。明天详细看看区别,应该能解决崩溃问题晚上到家要看看configure、makefile.in和makefile.am的区别。这周要学会cmake, automake,看完编码,TCP继续5章。...

2021-06-07 21:22:15 71

原创 TCPIP协议 ARP RAPR - 学习记录 2020/4/21

研二ARP(0806)ARP用于以太网类型局域网,功能是根据IP地址请求对应的硬件地址。客户端通过发送ARP以太网数据帧广播给网络上的所有主机,向IP拥有者请求其硬件地址。接收者返回其硬件地址,之后双方便可以在链路层进行通信了。链路层其他接受者会根据该Address Resolution Protocol报文更新自己的路由表,而目的接受方则会返回自己的以太网地址。值得提出的是,该协议并不一定用于IP协议,对注入CHAOS、DOD TCP、Xerox等高层网络同样适用。分组格式:以太网目

2021-04-22 13:12:19 452

原创 TCPIP协议IP:网际协议 - 学习记录 2020/4/16

研二TCPIP协议 IP:网际协议IP层完成的是不可靠的、无连接的传输,不可靠指的是会自动丢弃无效的数据包,而且不会向上层报告,是否能检测到数据包丢失则是由上层负责完成。IP层完成数据包的转发。数据包的转发会查找路由表,有三个步骤:1)查找目的地址是否在路由表直接存在2)查找目的地址的网络号是否在路由表存在3)直接转发到默认路由项路由表包含以下几项:1)目的IP地址2)下一跳IP地址3)标志指明目的IP是网络地址还是主机地址 # 不是很理解4)要转发的网络接口“特殊的IP地址”部分

2021-04-16 10:38:33 102

原创 TCPIP协议 链路层 - 学习记录 2020/4/15

研二TCPIP协议 链路层链路层完成的功能是1)封装和拆封IP数据报;2)支持ARP功能;3)支持RARP功能TCPIP协议族支持多种链路层协议,不同协议是为不同硬件设备定义的。本章讲了链路层数据报的两种协议的数据包报格式(以太网RFC894和802委员会RFC1042);PPP、SLIP两种链路层协议的数据报格式;最大传输单元MTU三块内容。以太网和802.3标准提出的链路层协议的数据报长度均为6+6+2+46~1500+4 = 64 ~ 1518字节长度,如果IP数据长度不够则需要进行填充。

2021-04-15 01:01:26 124

原创 TCPIP详解卷一概述 学习记录 2020/4/13

研二TCP/IP详解 卷一 协议 概述希望四月结束的时候可以看完TCP部分,也就是24章。分用:分用指由于一层数据报文可能同时提供给同层或上层的多个不同协议使用,因此在封装的头部会标明所提供使用的协议的名称。客户/服务器模型:分为重复型和并发型,并发型会在客户到来的时候创建一个新的服务处理请求。端口号:FTP21, Telnet23, TFTP69端到端传输:不是指端口到端口的传输,而是指网络通信中建立连接的一端和另一端的通信。对这两方来说,通信中的路由过程对他们透明,他们并不关心。这个概念存

2021-04-14 00:28:02 218

原创 写代码 软件开发 手机端APP初始化 - 学习记录2020/3/16

研二写代码软件开发参与一件事需要全身心投入,及早摸清整个架构,否则在后面会很尴尬地被牵着鼻子走。手机端APP初始化APP的部分参数是以实例存贮在java的类里或C的动态库中的,所以当软件若长时间没有使用被系统清理后就会将这些数据丢失。这种情况下,当应用重新开启的时候就需要走初始化的流程,如果需要同后台交互则初始化时间会比较长,一般银行的应用开启时间较长就是这种情况造成的。...

2021-03-16 23:21:58 209 1

原创 makefile - 学习记录 2020/3/10

研二makefile看来看去还是直接看GNU的make文档来的实在。介绍makefile:makefile组成:隐式规则,显式规则,注释,变量,指令(目前没见过应用)名称makefile的相互包含(这里的include即为指令)include <filename>make是如何重新生成的(?)make程序是如何读取makefile的1). 第一阶段读取所有make文件,保存所有变量、值、显示规则和隐式规则,创建一个依赖图表2). 第二阶段,make程序通过依赖图表来决定(

2021-03-11 00:27:25 80

原创 固态硬盘相关知识 - 学习记录 2020/3/9

研二固态硬盘相关知识今天想给电脑加装个固态当系统盘,原来的机械硬盘当作数据盘,但折腾了两天愣是没折腾下来。网上一查资料才发现,原来是电脑不支持其他硬盘位的硬盘当作系统盘,所以花300多买的Nvme协议固态硬盘算是白瞎了……记录一下装硬盘的时候学到的一些相关知识。接口,数据通道,协议SATA vs. M.2这两种是硬盘的接口类型,明白说就是接口的外观形式。其中M.2也分为两种外观,一种是有两个金手指的socket3接口,一种是有三个金手指的socket2接口,这两种接口形状不同,其背后的数据通

2021-03-10 00:41:57 254

原创 ldd ln指令 nm指令 - 学习记录 2020/2/25

研二lddldd用于显示可执行文件的依赖库,网上资料显示,Linux在执行程序的之前会调用ld-linux.so这个库来将可执行文件需要加载的动态库加载到内存中,此时该库获得了该可执行文件的控制权。网上资料大都说这个ld-linux.so存放在/lib/路径下,但我找了一圈没找到,倒是在调用ldd指令的时候发现了这个库:[seth@ocean Server(nolog)]$ ldd -v libgmp.so ldd: 警告: 你没有执行权限 `./libgmp.so' linux-vdso.s

2021-02-26 18:01:11 891

原创 HTML初步 XML - 学习记录 2021/2/23

研二ASN1 printable_string一直认为ASN1的几中string类型都一样,今天才发现不同的string类型对不同的字符支持都是不一样的。在今天解析证书的过程中,证书主体人的属性值要求只能是parintable string,在传入了加入了下划线“_”的名称之后就一直报错。查了很久才发现这个问题。特此记录。...

2021-02-24 13:42:31 93

原创 纯写代码 - 学习记录 2020/2/22

研二纯写代码写了一天代码,代码行数:500左右

2021-02-23 10:01:17 88 1

原创 makefile - 学习记录 2021/2/20

研二makefile最近要重新学makefile了,记录以下每日所学。当可执行文件链接动态库后在执行时,可能会出现这种错误:test: error while loading shared libraries: libASN1.so: cannot open shared object file: No such file or directory这种错误的原因是,虽然在编译时已链接了动态库,但在执行程序的时候,可执行文件依然需要寻找动态库。但由于在编译的时候并没有把动态库路径写入可执行

2021-02-22 09:36:30 97

原创 OCSP makefile - 学习记录 2021/2/19

研二OCSP轻量级的证书状态查询数据结构,以ASN.1语法作为传输的编码。OCSP被提出的目的是替代CRL,CRL协议的原理是:客户端通过向服务端请求证书撤销列表来确认相应的证书是否已被撤销,证书撤销时间,证书有效期等信息。由于CRL返回的数据量过大,因此对客户端和服务端压力都较大。CRL的提出正是为了解决该问题。在CRL协议中,客户端将需要的证书的编号发给OCSP服务器,服务器通过查询证书状态后直接向客户端返回一个表述证书状态的整数值以及相应的详细信息(详细信息这一项是可选的,服务器发不发都可以)。

2021-02-20 11:09:46 192

原创 MD5的C实现及中间计算数据(学习记录 2020/1/8)

研二MD5今年的目标是要实现20个以上的标准,MD5是第一个。MD5的相关标准我参考的是RFC1321,但RFC好像并不是真正意义上的标准文件,这个之后再去研究。根据文档上对算法的描述,我编写出了如下代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#define IN#define OUT#define LOGE printf#define LOGD printf#defi

2021-01-08 19:14:05 196 1

原创 EOF - 学习记录 2020/12/24

研二EOF今天想用C写一个复制函数的程序,为马上要写的传输文件的程序做准备。但在读取文件的时候遇到了一个很诡异的问题。首先放出代码:#include <stdio.h>#include <fcntl.h>#include <time.h>#define MAXLEN 256int main(int argc, unsigned char *argv[]){ int f1, f2, n, i, read_total = 0, write_total

2020-12-24 13:44:16 117

原创 shell java 构造器与接口,this() - 学习记录 2020/10/14

研二shelljava 构造器与接口,this()接口interface可用于创建虚拟的类供已有的类继承,但接口中的方法没有实际实现,接口的方法的具体实现是在被继承的对象中完成的。这样的做法可以让子类拥有多个共同的特性,即多重分类:花既可以属于植物也可以属于家庭装饰。构造器,只有在新建一个类的时候才会调用到构造函数,比如:Car acar = new car();这其实就是在调用构造函数。构造函数允许你在使用对象之前就对对象进行一些初始化的设置,比如参数赋值,打印日志等。任何类都会有构造函

2020-10-14 17:25:16 119

原创 HMAC 函数指针和指针函数 - 学习记录 2020/9/10

研二HMACRFC 2104Hash((Key ^ opad) || Hash((K ^ ipad) || message))哈希函数是我自己瞎写的,先对入参字符串进行填充(16字节),然后将每一组字符串与前一组进行异或。#include <stdio.h>#include <string.h>#include <stdlib.h>#define IN#define OUT#define HASHFUNC mabowenhash#define

2020-09-10 19:24:17 254

原创 C指针和数组 C堆和栈,alloca, malloc, calloc以及realloc - 学习记录 2020/9/3

研一C指针和数组#include <stdio.h>#include <string.h>#include <stdlib.h>#define PPP printf("log here\n");void ptrfunc(char *);void main() { char ptr[6] = "abcde"; ptrfunc(ptr); printf("%s\n", ptr); return;}void ptrfunc(char * pt

2020-09-10 13:36:08 154

原创 PKCS5 - 学习记录 2020/9/1

研二PKCS5 基于口令加密标准(Password-Based Cryptography Standard)该加密标准描述了PBE(password-based encryption)的对称加密方法,事实上,PBE加密方法并不是一个新的加密方法, PBE加密方法只是对现有的加密方法的一种应用,具体用到的是DES,RC2,RC5在CBC模式下的加密过程。PKCS5标准在PKCS系列中的应用应该主要是在PKCS12标准个人信息交换语法中描述的文件格式中的最后一项,即应用于mac Data,iterati

2020-09-01 20:35:57 371

原创 C typedef jni - 学习记录 2020/8/20

研一C typedef这样也是合法的:#include <stdio.h>typedef unsigned char boolean;void test(unsigned char * var) { printf("%s\n", var); return;}void main() { boolean *test_value = "abcdefg"; test(test_value); return;}jni

2020-08-31 08:09:01 77

原创 PKCS 7 PKCS10 PKCS12 个人信息交换语法 - 学习记录 2020/8/30

研一PKCS 7PKCS7是加密信息传输语法标准,根据不同应用场景定义了5中不同的数据类型,以下是RSA实验室定义的部分asn.1语法,并不完整,所以不要当标准用!-- 0.ContentInfo --ContentInfo ::= SEQUENCE { contentType ContentType, content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL}ContentType ::= OBJECT INDETIFIER

2020-08-31 00:19:51 867

原创 jni 编码 - 学习记录 2020/8/19

研一jnijni主要功能是对编码的转换和数据类型的转换,jni在应用于C调用java程序上时是比jna快的,对jni要多多研究。编码Unicode, UTF-8, UTF-16, GBK, ASCII, ISO Latin-1, ASCII-Extend

2020-08-20 11:56:17 107

原创 C语言 变长参数表 DES S盒研究 SM2 相关ASN1 结构 - 学习记录 2020/8/18

研一C语言 变长参数表

2020-08-18 19:06:33 479

原创 学习记录 2020/8/17

研一DES学习DES是Data Encryption Standard的缩写,是美国Federal Information Processing Standards Publication于1977年1月15号发表的46-3号标准。DES是IBM公司开发的对Lucifier体制密码的一个改进,是一种特殊类型的迭代密码,叫做Feistel密码。Feistel密码依然是迭代密码,对明文数据采用轮函数进行置换变化,同时对密钥进行密钥编排使每一轮的密钥都不相同。Feistel结构的密码首先将明文分为左右Li

2020-08-17 18:34:03 394

原创 学习记录 2020/8/5

研一ABI在使用ndk编译的时候总是需要在Application.mk文件中对APP_ABI进行选择,今天对ABI进行了初步了解。ABI是application-binary-interface的缩写,是操作系统和应用程序,应用程序和他下面的库交流的接口。在编译阶段,链接器需要对不同的目标ABI进行不同的处理,如进行数据首地址对齐,静态变量地址表的生成,内存地址的使用等方面。ABI包含的意义一方面可以是目标机器的系统规定,另一方面也可以理解为生成的打包程序的版本信息。在编译选项中,使用APP_AB

2020-08-06 00:59:40 84

原创 学习记录 2020/8/3

研一全同态及半同态加密算法联邦学习在研究同态加密的时候看到了加法半同态加密的应用场景式联邦学习,所以稍微看了下这个概念。联邦学习是机器学习的一个变种应用,满足多个用户在不共享其数据的情况下共同建立机器学习模型。Paillier加法半同态加密的应用场景估计也是用在对不同方数据的加密上。当机器学习需要提供的数据分布在不同用户手中,而且各用户要求满足对数据的保密性时,便可以使用联邦学习范式来完成机器模型的建立。联邦学习可使用户将数据汇聚到一起建立起一个虚拟的模型,同时并不需要用户将本地的数据上传。虚拟

2020-08-04 13:38:56 174 1

原创 学习记录 2020/8/2

研一Android 对系统属性的获取安卓调用__system_property_get(char* sysprop, char* output)可获取系统属性FILE函数FILE *fp = fopen(path, "r"/"w"/"a" + ["b"/"t"] + ["+"]); //打开文件fseek(fp, 0, SEEK_END); //读取文件长度file_len = ftell(fp);rewind(fp

2020-08-03 13:13:36 93

原创 学习记录 2020/7/28

研一C语言const声明const变量两份为局部变量和全局变量,局部变量存储在栈区,实际和常量没有区别,是可以通过比如在新的函數中通过指针间接修改const的值;而全局变量则真正可以做到拒绝修改内容的作用。全局const变量的定义是保存在符号表中的,所以符号表中一定有全局const变量的信息。全局const变量可能占用内存空间。这个是否占用内存空间是由编译器的优化策略决定的。比如没有对const进行取地址等操作,那么仅仅需要将const信息保存在符号表中就可以了。而如果有取地址等操作,那么全局cons

2020-07-28 20:04:58 98

原创 C程序设计语言 5-10

练习5-10 编写程序expr,以计算从命令行输入的逆序波兰表达式的值,其中每个运算符或操作数用一个单独的参数表示。例如,命令:expr 2 3 4 + * 将计算表达式2*(3+4)的值。给结果之前先记录一下书上这个牛逼的程序:P101,允许输入参数的模式匹配程序。#include <stdio.h>#include <string.h>#define MAXLINE 1000int getline(char *line, int max);int mai

2020-07-17 13:39:49 778

原创 C程序设计语言 5-9

练习5-9 用指针方式代替数组下标方式改写函数day_of_year和month_day。这种方法可以给指针数组赋值。#include <stdio.h>void main() { int* a[2]; int m[] = { 8, 99, 10 }; int n[] = { 11, 22, 33, 44 }; a[0] = m; a[1] = n; printf("a[1]:%d\n", a[1][1]);}我的想法是,指

2020-07-10 16:37:30 572

原创 学习记录 2020/7/9

研一ndk安装因为要对c语言编写的程序打包,所以得安装NDK。但说是安装,其实不过是把包下载后设置一下环境变量。环境变量不能包含空格,网虽然有说把空格的路径用双引号括起来就好,但windows路径是不允许添加双引号的。...

2020-07-10 11:04:18 108

原创 学习记录 2020/7/8

研一openssl 命令行openssl命令行可以简便化达成加解密,摘要签名等功能。分为dgst, enc等几种jni还是不太会,今天去装个jdk实际操作一下

2020-07-09 08:38:40 141

原创 C程序设计语言 5-8

练习5-8 函数day_of_year和month_day中没有进行错误检查,请解决该问题。#include <stdio.h>#define PPP printf("what does it for?\n");static char daytab[2][13] = { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}.

2020-07-08 17:12:00 482

PDF页面删除修改裁切工具

PDF-XChange Editor。专注于PDF电子文档的编辑功能,体积小巧,速度飞快,界面友好,打开PDF文件速度快,具备丰富的配置和功能选项,可以帮助您快速的制作和编写PDF电子文档!支持创建,查看,编辑,注释,OCR识别和数字签名PDF文件等等功能。

2019-12-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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