- 博客(26)
- 收藏
- 关注
原创 文件IO--fileIO
title: 文件IO–fileIOdate: 2020-10-12 10:58:48tags:文件IO简介1.文件IO也称不带缓冲的I/O(unbuffered)。不带缓冲指的是每个read, write都调用内核中的一个系统调用。2.遵循POSIX相关标准,任何兼容POSIX标准的操作系统上都支持文件I/O。3.读写文件时, 每次操作都会执行相关系统调用, 好处是直接读写实际文件,坏处是频繁的系统调用会增加系统开销。原子操作–> 打开文件 + 移动到末尾考虑一个进程,它将数据.
2020-10-12 15:59:30
1118
原创 标准IO–stdIO
title: 标准IO–stdIOdate: 2020-10-12 10:51:14tags:标准IO简介1.标准I/O是ANSI C建立的一个标准I/O模型, 是一个标准函数包和stdio.h头文件中的定义, 不依赖系统内核, 所以移植性强。2.遵循ANSI C相关标准。需要开发环境中有标准I/O库, 标准I/O就可以使用。3.在文件IO的基础上封装文件描述符并维护了缓冲机制。4.fopen函数 打开一个文件, 并且建立了一个流缓冲(用户空间,读写模式下建立两个缓冲区), 还创建了一个包含.
2020-10-12 15:57:36
288
原创 文件IO-文件描述符
文件描述符1.文件描述符的描述a file descriptor, a small, nonnegative integer for use in subsequent system calls (read(2), write(2), lseek(2), fcntl(2), etc.) --from man 2.6.3关键词:nonnegative integer 非负整数use in system calls 系统调用使用当打开或者创建一个新的文件时,内
2020-09-24 19:58:51
456
原创 pos密事(续2)
紧接上文,本篇简述mac值的计算以及PIN(个人工作秘钥)的加密以及转加密。信息:就用上文算出来的PIN和PAKPIN秘钥明文 B42C67015B2FA5B85135D170A2ECC4E5PAK秘钥明文 7C8B366BD1C56183655F8D3529A2117B3.MAC密钥的计算(国密和国际)数据0200602406C020C09B1119623501013170200003203100000001352711071000000012376235010131702000032D
2020-07-24 09:42:46
727
1
原创 pos密事(续1)
前言上手工作一年后,又与密钥打交道了。这次又对密钥有了全新的认识。这次项目需求是进行国密改造,老项目用的事国际算法(3des),先改成国密算法(SM4)请听我细细道来。1.主密钥密文 --> 主密钥明文斜体样式2.签到解工作秘钥(PIN,PAK)3.MAC密钥的计算(国密和国际)4.PIN的加密以及转加密1.主密钥密文 --> 主密钥明文本项目 国际 采用双倍长(3des)算法,改造成国密SM4算法算法模式还是按照原来 ECB模式,以下数据都是国密数据国密改造 整体流程与之
2020-07-22 18:58:38
941
1
原创 [linux文件系统]RAID2 软RAID
前言RAID常用来管理磁盘阵列,但是linux也有软件RAID,通过对多个分区进行RAID管理。内核中MD模块软件 将制定的磁盘组合成RAID 例如 /dev/sdb /dev/sdc --> /dev/md0写数据时候,操作系统到内核态时,调用 MD模块,内容写到 RAID中, MD模块再降内容分成两片 在写到 /dev/sdb /dev/sdc注意:操作系统奔溃时...
2019-06-04 07:56:13
689
原创 [linux文件系统]RAID独立磁盘冗余阵列
前言RAID(Redundant Array of Independent Disk) 独立磁盘冗余阵列RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份的技术。RAID level级别 仅代表磁盘的组织方式不同,没有上下之分raid0 条带性能提升:读,写冗余能力(容错能力) 无空间利用率 ...
2019-06-04 07:39:59
236
原创 [linux文件系统]从磁盘到分区到文件系统
格式化低级格式化 创建磁道 -->物理层面高级格式化 创建文件系统 --> 逻辑层面创建文件系统step 1 创建分区step 2 格式化文件系统分区是什么?分是将一个硬盘划分为若干连续的储存区域,分区表保存硬盘分区的索引。为什么要有分区?保护数据,也便于文件系统管理区硬盘分区主分区(primary partition)扩展分区(extended partit...
2019-06-02 18:15:48
463
原创 head和tail命令
head 输出文件的头部tail 输出文件的尾部两个命令都是打印显示文件内容head默认打印前10行内容如果有多个文件,在每个文件输出之前添加文件名-c +NUM 按字符大小进行输出显示-n +NUM 按行数进行输出显示tail head的选项后还附加-f == --follow=descriptor-F == --follow=name区别 de...
2019-06-02 07:40:31
4606
原创 [linux文件系统]软链接和硬链接
前言插播一下文件的软硬链接,其实也与文件系统相关。理解了硬链接和软链接也能够更好的理解文件系统硬链接,符号链接硬链接:不同的目录条目中指向相同的数据块内容符号链接:其目录条目中,存放的是另一个路径的文件名,文件大小为存放路径字符个数,权限都为777硬链接ln src dest只能对文件创建,不能应用与目录 避免循环引用目录硬链接的数是2不能跨文件系统,因为inode不同...
2019-05-14 20:07:22
503
原创 [linux文件系统]文件访问操作
前言简单总结上一篇的文件系统,一个文件或目录的元数据(Meta)都是保存在inode Table表中,我们要访问一个文件,就需要通过inode找到对应的数据块位置,然后再找到数据块读取。实例找到文件 /var/log/msg.txt的内容step1:linux文件系统会保存/ 根文件的inode,在inode Table中保存有/ 所在的数据块注意目录项,在上篇讲到(可以看目录项图)...
2019-05-14 19:41:04
896
原创 [linux文件系统]ext2文件系统
前言如何快速高效的寻到在硬盘存储的数据,于是文件系统就诞生了。文件系统是逻辑层面的,那么文件系统是如何管理好硬件层提供的磁盘空间的?文件系统的技术方案1.连续分配 创建文件时,分配一组连续的数据块。然后再单独的地方存储文件信息2.链式分配 将文件块像链表一样管理起来,每个块放指针,指针指向下一个文件块位置3.索引分配 通过文件索引找到存放文件的信息的数据块(数据库中有文件名,数据...
2019-05-12 20:08:20
535
原创 [linux文件系统]磁盘硬件篇
前言本系列磁盘管理,本周在学习磁盘管理的知识。本系列准备将磁盘以及文件系统都整理一遍。因为本渣渣不是计算机专业毕业的,所以最近在学习基础的计算机知识,如有不对的,望指正。以下主要介绍机械式硬盘硬盘分类固态硬盘(SSD) 采用闪存颗粒来存储机械硬盘(HDD) 采用磁性碟片来存储机械式硬盘基础概念盘片和盘面 platter 硬盘中一般会有多个盘片组成,一个盘片有两个盘面,每个...
2019-05-12 14:16:34
363
原创 linux find文件查找命令
概述find命令 支持实时查找,精确匹配,通过遍历指定目录中的所有文件完成查找,速度慢,但支持众多查找标准locate命令讲find命令之前,先介绍类似的文件查找命令 locatelocate 非实时,模糊匹配,全文件系统查找命令,根据全系统文件数据库进行查找,其数据存在/var/lib/mlocate/mlocate.dbupdatadb 手动生成文件数据库。updatedb i...
2019-04-28 10:14:01
1102
原创 shell脚本编程之循环
1.概述灵活使用分支,再加上这篇的循环模式,那么大部分的脚本编写应该没有问题了。接下了要的就是大量的练习了。shell脚本编程常配合linux命令,和文本处理命令。个人通过日志,对脚本进行练习。比如:在繁杂的日志中,显示某时段的;某业务的;错误信息;等等。。。2.格式for 变量 in 列表; do 循环体done例for I in 1 2 3 ...
2019-04-24 17:53:07
229
原创 shell脚本编程之分支
1.概述接上一篇的shell变量,本篇将讲解shell的条件判断。条件分支语句在shell编程中使用较为广泛,本来接收单分支和双分支。秉承一个观点:技巧不在多,实用就行。所以掌握一个技能,使用熟练。若真有其他需求再学习其他技能。2.用法单分支if语句if判断条件; thenstatement1statement2...fi...
2019-04-24 17:28:55
394
原创 shell脚本编程之变量
1.概述shell编程:shell语言是脚本语言,解释型语言。shell语言 是通过bash下进行解释运行的静态语言 编译型语言 需要将代码通过编译器编译成二进制文件属于强类型(变量) 代表 c c++ java c#动态语言 解释型语言 不要编译,在环境中,边解释边执行属于弱类型(变量) 代表 python asp .net php perl shell2.变...
2019-04-24 16:47:21
165
原创 linux sed流编辑器
1.概述文本三剑客,grep、sed、awk。今天就简单记录sed命令。sed stream editor 流编辑器sed 是行编辑器,按行编辑。区别nona,vi(全屏编辑器)2.sed模式空间默认不编辑原文件 仅处理模式空间的数据处理,结束后将模式空间中的内容打印至屏幕3.语法sed [OPTION]… {script-only-if-no-other-script} ...
2019-04-23 17:51:08
235
原创 POS终端“密事”之MAC运算
前言紧接着上篇,上篇加密计算了PIN BLOCK,这篇计算MAC运算。话不多说,直接开怼。MAC运算用上篇的TMK密钥 C1A4AE89BAEAB029以下是我日志打印出pos向银行终端发送的8583报文消费业务报文,下文简单说一下之后会有文章详讲。011660001400006031003100060200702406C020C09A1119623501345220000006900...
2019-04-19 18:24:17
1304
2
原创 POS终端“密事”之PIN加解密
前言到现在,我们手上拿到了TPK和TAK工作密钥,今天我们就要来讲讲如何对PIN的加密,以及MAC的运算。工作密钥以下是我取得今天的工作密钥,那么运用前一章的知识快速计算出TPK和TAK(ps TMK为CA5D92598DCA48CE8A4C76361A9269E9)TPK 9410D034436E8F1613703D5D1ABA25ADTAK C1A4AE89BAEAB029...
2019-04-19 18:06:10
3064
6
原创 POS终端“密事”之工作密钥解密
前言简单的讲了签到,和加密算法。现在可以讲解签到的第二步骤了,pos的工作密钥的加密传输。举个栗子pos终端TMK: CA5D92598DCA48CE8A4C76361A9269E9 (128bit)POS中心通过8583报文传送62域 00406701EAD6A9AD51E51AA406E2C27FCFA98D0A74B8B651F9E9BACE9AE1000000000000000...
2019-04-18 17:55:42
2527
1
原创 POS终端“密事”之相关算法
POS加密相关算法加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。加密类型分为两种,对称加密与非对称加密,对称加密双方采用共同密钥;非对称加密,存在两个密钥,一个公共密钥(可以公开的密钥值),一个是私人密钥(对外保密)。发送信息时,使用公共密钥加密信息,当收到加密信息时,使用私人密钥解码信息(被公钥加密信息,只有唯...
2019-04-18 17:33:43
1071
1
原创 POS终端“密事”之签到
POS终端“密事”之签到前言名词解释PIN 个人识别码(Personal Identify Number)TMK 终端主密钥 (Terminal Master Key)数据加密密钥 (Date Encrypt Key)TPK,TIK 终端PIN密钥 (Terminal Pin Key)TAK 终端MAC密钥(Terminal Mac Key)TDK 终端磁道数据密钥 (Terminal Date ...
2019-04-17 19:34:18
2039
原创 linux grep文本搜索工具
[linux篇]grep文本搜索工具概述[option] 选项元字符字符集合区别文件名通配符grep fgrep egrep基础正则表达式和扩展正则表达式技巧总结概述grep man手册中解释 "print lines mattching a pattern"翻译成中文为 按照匹配的模式打印匹配的行。要注意两点:1.grep是按行打印的2.是按照模式匹配的grep [opyion] p...
2019-04-15 22:37:41
188
原创 git技能学习
简单概念workapace: 工作区 当前目录Index/Stage: 暂存区 git add 后添加文件的相关信息(文件名、大小…),暂存区标记了你当前工作区中,那些内容被Git整理的Repository: 本地仓库 git commit 后同步index的目录树到本地仓库Remote: 远程仓库基本操作git init 在当前目录初始化一个git代码库git add [...
2019-01-30 08:42:16
272
原创 数组指针的三种定义方法
用 typedef 定义一个数组类型有 typedef 是类型,没有是变量数组类型 typedef int A[8]; 数组类型,int + 8个确定的变量 //typedef int (A)[8]; A b;//int b[8]//去了typedef,b替换到A的位置//数组指针, 指针数组//指针数组,...
2018-06-03 08:35:47
15729
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人