掌桥专利:专业的专利平台
掌桥专利
首页

一种数据不可删除的方法、移动终端以及存储介质

文献发布时间:2023-06-19 10:06:57


一种数据不可删除的方法、移动终端以及存储介质

技术领域

本申请涉及数据存储领域,尤其涉及一种数据不可删除的方法、移动终端以及存储介质。

背景技术

通常存储设备中存储的文件,是可以被修改和删除的。如果要确保文件不被删除,需要通过运行在主机端的软件或者移动设备端的app,由软件和app来控制修改和删除的权限。另外,一旦软件或app遭到破解,同样存在文件被修改或删除的风险。

因此,如何保证存储设备中的文件的安全性,在存储设备与终端连接后,保留原始数据不被修改和删除是个亟待解决的问题。

发明内容

本申请的目的是保证存储设备的数据安全性,保证存储设备与终端连接后原有数据不被删除和修改。

本申请的上述技术目的是通过以下技术方案得以实现的:一种数据不可删除的方法,其中,包括步骤:

获取存储设备内的文件的位置信息;

接收用户输入命令;

判断用户输入的命令类型;

当用户输入命令为正常命令时,按照正常命令处理流程处理;

当用户输入命令为修改或删除文件位置信息命令时,断开所述存储设备与终端的连接。

本申请上述方案公开了一种数据不可删除的方法,通过通过对用户输入的命令类型,判断是否为修改或删除文件位置信息命令,如果是的话,则表明该命令目的是修改或删除文件内信息,因此,断开所述存储设备与终端的连接,由于数据是存储在存储设备中,因此,断开存储设备与终端的连接后,无法进行修改和删除操作,保障了存储设备内的数据完整性。

进一步的,所述的数据不可删除的方法,其中,获取存储设备内的文件的位置信息的步骤包括:

读取存储设备内扇区数据,解析文件系统类型;

解析文件分配表的地址信息,存储最后一个有效簇号;

检索数据表,存储最后一个有效目录项的位置。

本申请上述方案,读取存储设备的扇区数据,来解析文件系统的类型,不同的文件系统类型,大体方向一致,只是具体到参数会有区别,接着解析存储设备中文件分配表的地址信息,存储最后一个有效簇号,簇号是最小的单元,文件分配表区共保存了两个相同的文件分配表,因为文件所占用的存储空间(簇链)及空闲空间的管理都是通过FAT实现的,FAT如此重要,保存两个以便第一个损坏时,还有第二个可用。文件系统对数据区的存储空间是按簇进行划分和管理的,簇是空间分配和回收的基本单位,即,一个文件总是占用若干个整簇,文件所使用的最后一簇剩余的空间就不再使用,而是浪费掉了,因此存储最后一个有效簇号便于知悉最后一个文件位置,而检索数据表,是为了存储最后一个有效目录项的位置。

进一步的,所述的数据不可删除的方法,其中,判断用户输入的命令类型的步骤包括:

判断用户输入的命令是否为写入命令;

当输入的命令不是写入命令时,标记所述输入的命令为正常命令。

本申请上述方案,对于用户输入的命令,对命令类型进行判断,首先判断是否为写入命令,因为,一般读命令不涉及到数据修改和删除,因此,在用户输入的命令不是写入命令时,标记所述输入的命令为正常命令,按照正常流程处理。

进一步的,所述的数据不可删除的方法,其中,判断用户输入的命令是否为写入命令的步骤还包括:

当输入的命令为写入命令时,判断写入命令的操作区域;

判断写入命令是否为操作数据区;

当所述写入命令是操作数据区时,标记所述写入命令为正常命令。

本申请上述方案,前述方案提到了,当用户输入的命令不是写入命令时,按照正常流程处理,而用户输入的命令是写入命令时,需要对写入命令的操作区域进行判断,不同的操作区域,权限不同,例如,操作数据区,对数据区进行写入,表示在增加文件数据,并不涉及到修改,因为文件目录没变,因此按照正常命令操作流程进行。

进一步的,所述的数据不可删除的方法,其中,判断写入命令是否为操作数据区的步骤还包括:

当所述写入命令不是操作数据区时,判断所述写入命令是否操作目录项;

当所述写入命令是操作目录项时,判断所述写入命令是否为新增的目录项;

当所述写入命令是新增的目录项时,标记所述写入命令为正常命令;

本申请上述方案,前述方案提到了,当用户输入的命令是操作数据区域时,按照正常流程处理,当用户输入的命令不是操作数据区域时,需要判断写入命令是否操作目录项,进一步的,即对文件的目录是否有新增,其中,新增目录,属于正常命令,并未对原有的数据进行修改,因此,属于正常命令,按照正常命令流程处理。

进一步的,所述的数据不可删除的方法,其中,当所述写入命令是操作目录项时,判断所述写入命令是否为新增的目录项的步骤还包括:

当所述写入命令不是新增的目录项时,判断所述写入命令是否有删除标记;

当所述写入命令包含有删除标记时,标记所述写入命令为修改或删除文件位置信息命令。

本申请上述方案,前述方案提到,当写入命令是新增目录项时,正常处理,当写入命令不是新增目录项时,需要判断所述写入命令是否有删除标记,有删除标记,标记所述写入命令为修改或删除文件位置信息命令,断开设备连接,保证数据安全。

进一步的,所述的数据不可删除的方法,其中,当所述写入命令不是新增的目录项时,判断所述写入命令是否有删除标记的步骤还包括:

当所述写入命令中不包含有删除标记时,判断写入命令是否只修改了访问时间;

当是时,标记所述写入命令为正常命令,当否时,标记所述写入命令为修改或删除文件位置信息命令。

本申请上述方案,前述方案提到,当写入命令包含删除标记,断开连接,而当写入命令不包含删除标记时,需要对写入命令再次判断,判断该写入命令是否只是修改了访问时间,因为写入命令,又没有删除标记,表明该写入命令为修改命令,因此需要判断该修改命令是否修改文件位置信息,当修改的是访问时间时,对文件信息并未造成修改,因此,为正常命令,当写入命令不是修改了访问时间,表明该写入命令在尝试修改文件数据,因此,断开设备与终端的连接。

进一步的,所述的数据不可删除的方法,其中,当所述写入命令不是操作数据区时,判断所述写入命令是否操作目录项的步骤还包括:

当所述写入命令不是操作目录项时,判断所述写入命令是否修改文件表旧表项;

当所述写入命令是修改文件表旧表项时,标记所述写入命令为修改或删除文件位置信息命令;

当所述写入命令不是修改文件表旧表项时,为新增数据,标记所述写入命令为正常命令。

本申请上述方案,前述方案提到,写入命令是操作目录项是如何判断的,而当写入命令不是操作数据区也不是操作目录项时,需要判断所述写入命令是否修改文件表旧表项,也就是对原有表内数据进行修改,当是时,断开设备连接,当不是修改文件表旧表项时,表示用户在新增数据,标记所述写入命令为正常命令。

进一步的,本申请还公开了一种移动终端,其中,包括处理器,以及与所述处理器连接的存储器,所述存储器存储有数据不可删除程序,该数据不可删除程序被所述处理器执行时实现如上所述的数据不可删除的方法的步骤。

进一步的,本申请还公开了一种存储介质,其中,所述存储介质存储有数据不可删除实现程序,所述存储介质被处理器执行时,实现上述数据不可删除的方法的步骤。

综上所述,本申请公开了一种数据不可删除的方法、移动终端以及存储介质,涉及数据存储领域,其中,所述方法包括步骤:获取存储设备内的文件的位置信息;接收用户输入命令;判断用户输入的命令类型;当用户输入命令为正常命令时,按照正常命令处理流程处理;当用户输入命令为修改或删除文件位置信息命令时,断开所述存储设备与终端的连接,本申请所述方案,能够对用户输入的命令进行判断,当用户输入的命令为修改或删除存储设备内的文件信息时,断开所述存储设备与终端的连接,保证存储设备内的信息安全性。

附图说明

图1是本申请所述数据不可删除方法的步骤流程图。

图2是本申请所述数据不可删除方法的步骤S1的流程图。

图3是本申请所述数据不可删除方法的步骤S3的流程图。

图4是本申请所述数据不可删除方法的步骤S31的流程图。

图5是本申请所述数据不可删除方法的步骤S311的流程图。

图6是本申请所述数据不可删除方法的步骤S3111的流程图。

图7是本申请所述数据不可删除方法的步骤S31111的流程图。

图8是本申请所述数据不可删除方法的步骤S311111的流程图。

附图标记。

具体实施方式

以下结合附图对本申请作进一步详细说明。

通常存储设备中存储的文件,是可以被修改和删除的。如果要确保文件不被删除,需要通过运行在主机端的软件或者移动设备端的app,由软件和app来控制修改和删除的权限。另外,一旦软件或app遭到破解,同样存在文件被修改或删除的风险。

因此,针对上述问题,本申请公开一种数据不可删除方法,能够对存储设备内的文件信息进行保护,避免被修改或删除,将防修改操作,由以往的软件或APP实现(上层实现),挪到存储设备管理算法实现(底层实现)。大大降低了方案被破解的风险。

总体的步骤如图1所示,为所述数据不可删除方法的步骤流程图,其中包括:

S1.获取存储设备内的文件的位置信息;

S2.接收用户输入命令;

S3.判断用户输入的命令类型;

S4.当用户输入命令为正常命令时,按照正常命令处理流程处理;

S5.当用户输入命令为修改或者删除文件位置信息命令时,断开所述存储设备与终端的连接。

为了实现上述步骤,首先要确定文件位置信息,文件的原有数据位置信息发生改变,则表明文件数据被修改或删除,本申请基于这个参数的改变来判定,因此,参阅图2,所述步骤S1包括:

S11.读取存储设备内扇区数据,解析文件系统类型;

S12.解析文件分配表的地址信息,存储最后一个有效簇号;

S13.检索数据表,存储最后一个有效目录项的位置。分别对应文件最后一个数据以及最后一个目录。

本申请较佳实施例,以FAT为例,当存储设备通电时,boot loader模块会从存储芯片中加载预烧录一个管理算法FTL,由FTL(Flash Translation Layer,闪存转换层)来管理主机对存储设备的操作(读写)。

本申请中,在FTL新增两个管理模块:文件系统解析模块和写命令预处理模块。其作用分别如下:

文件系统解析模块:在设备上电执行boot loader(引导加载程序),将管理算法FTL加载到RAM(随机存取存储器)并完成FTL相关表格和参数的初始化后,FTL会先调用文件系统解析模块,预先读取文件系统的内容并解析其中的关键信息(FAT表(文件分配表)和FDT(Function Data Table, 功能数据表)相关信息等),并将解析到的参数保存在RAM中。

写命令预处理模块:当主机下发写命令时,FTL先调用写命令预处理模块,并将主机下发的写命令参数传入写命令预处理模块,由预处理模块决定是否将数据写入存储设备。

由于读命令不涉及对数据的改动,因此不需要对读命令做特殊处理。

因此,参阅图3,在获取用户输入的命令后,步骤S3具体包括:

S31.判断输入的命令是否为写入命令;

S32.当用户输入的命令不是写入命令时标记所述输入的命令为正常命令。例如读命令,或者检索命令,不涉及对数据的改动,因此,按照正常处理流程进行处理;

当输入的命令是写入命令时,对于写入命令,也有多种情况,不同的写入命令,可能会修改文件数据,也可能不对数据进行改动或删除,因此,需要再次进行命令类型的判断,参阅图4,所述步骤S31还包括:

S311.当输入的命令为写入命令时,判断写入命令的操作区域;

S312.当所述写入命令是操作数据区时,标记所述写入命令为正常命令。

操作区域分为数据区以及其他,其中数据区的操作为正常命令,意味着用户在输入数据,即在前述的最后一个簇号后增加数据,为增加操作,并未对原有数据进行修改或删除,因此按照正常流程处理。

当所述写入的命令不是操作数据区时,又需要再次判断,参阅图5,所述步骤S311包括:

S3111.当所述写入命令不是操作数据区时,判断所述写入命令是否操作目录项;

S3112.当所述写入命令是操作目录项时,判断所述写入命令是否为新增的目录项;

S3113.当所述写入命令是新增的目录项时,标记所述写入命令为正常命令。

写入命令不是操作目录项又有多种情况,其中增加目录属于正常命令,因此,需要判断所述写入命令是不是新增目录项,当是时,正常处理。

当所述写入命令不是新增目录项时,再次需要对其进行判断,参阅图6,所述步骤S3111包括:

S31111.当所述写入命令不是新增的目录项时,判断所述写入命令是否有删除标记;

S31112.当所述写入命令包含有删除标记时,标记所述写入命令为修改或删除文件位置信息命令。

当所述写入命令有删除标记时,表示该写入指令为删除指令,因此,断开所述存储设备与终端的连接。

当所述写入指令没有删除标记时,则表明该写入指令为修改指令,参阅图7,所述步骤S31111还包括:

S311111.当所述写入命令中不包含有删除标记时,判断写入命令是否只修改了访问时间;

S311112.当是时,标记所述写入命令为正常命令,当否时,标记所述写入命令为修改或删除文件位置信息命令。

所述修改指令,所修改的内容,若修改的内容仅为访问时间的话,并未涉及数据修改,因此,按照正常处理流程处理,而当所述写入命令不是修改访问时间时,则表示所述写入命令所需要修改的内容为文件内的数据,因此,断开所述存储设备与终端的连接。

前面提到,当写入指令不是操作数据区时,判断写入命令是否操作目录项,当所述写入命令不是操作目录项时,需要判断所述写入命令是否为修改文件表旧表项。参阅图8,为所述步骤S311111的流程图,具体的包括:

S3111111.当所述写入命令不是操作目录项时,判断所述写入命令是否修改文件表旧表项;

S3111112.当所述写入命令是修改文件表旧表项时,标记所述写入命令为修改或删除文件位置信息命令;

S3111113.当所述写入命令不是修改文件表旧表项时,为新增数据,标记所述写入命令为正常命令也就是修改旧表内的数据,当是修改旧表项数据时,断开存储设备与终端的连接。

综上,本申请公开了从获取用户输入的命令开始,经过层层判定,保证对命令类型的精准确定,在写入命令是正常命令时,按照正常命令处理流程处理,当写入名利为修改或删除命令时,及时断开所述存储设备与终端的连接,保证文件内数据的安全性。

本申请上述表述中,FTL(Flash Translation Layer)译为闪存转换层,是FlashMemory(存储介质)与Device Controller(设备主控器)之间的连接关系。在整个储存体系中,FTL起着翻译官的作用,它将Host(电脑、手机等)发送至Device(eMMC、SSD)的逻辑地址转换为写入Flash的物理地址(地址映射管理)。在进行地址转换的同时,FTL还兼顾Flash的管理,不仅需要对Flash上的各个Block进行擦写次数控制(磨损均衡),还需要管理Flash上的无用数据(垃圾回收)。

简单介绍这三个点。

1. 地址映射管理概念

不同于机械硬盘的磁头直接进行数据读写,SSD或者其它以Flash作为储存介质的硬盘无法直接进行数据读写操作。解决这个问题的办法,就是FTL层管理几张逻辑映射表做一个中间转换,Host给定一个逻辑地址,FTL根据这个逻辑地址在逻辑映射表上建立映射关系,连接到Flash上的物理地址。一般来说,FTL将逻辑地址处理后,建立的映射关系包含了Flash的Block编号、Page编号等,数据读取时便根据这些信息在Flash对应的位置上找到数据,传输至Host。

2. 磨损均衡概念

以Flash为储存介质,其可编程次数是必须考虑的重点。拿目前的固态举例,多以TLCFlash为储存介质,其编程次数在1000-1500次之间,若对TLC Flash上的某些block擦除次数超过了次数限制,那么将导致坏块产生,所以FTL须实现磨损均衡,协调整个Flash上的Block,将使用次数少的Block拿出来分担使用次数多的Block的压力。通俗的说,磨损均衡就是以相对最优的选择使Flash上每个Block的擦除次数尽可能相同,以避免有些Block擦除次数过多成为坏块致使用户可用容量变小的问题。

3. 垃圾回收概念

因为储存原理的不同,删除SSD等以Flash为储存介质的硬盘上的数据时,只是删除了Host端的逻辑地址,而实际数据存在Flash的物理地址上,依旧霸占着空间(所以不要以为你的数据删除了就安全了,没进行垃圾回收时,他们依旧可以找回),后续数据写进来只能写到其他Block(Page)上,这就可能造成一个Block上的8M数据只有2M是有效数据,其他的都是被删除了逻辑地址的“假数据”,久而久之,就会导致空Block不够用了。解决这个问题呢,就靠垃圾回收(GC)了,它功能就是找一个空Block(目的Block),然后把那些“假数据”比较多的Block(源Block)上的有效数据搬移过来,再把源Block释放擦除,这样,一个目的Block可以容纳多个源Block的数据,达到强行一换多的目的,给用户腾出了更多的空间。

本申请另一个实施例中,提供了一种移动终端,其包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中存储器存储逻辑控件的数据信息和图片。处理器用于提供计算和控制能力,处理器执行计算机程序时实现前述的方案中的所有步骤,故不在此赘述。

本申请的另一个实施例中,提供了一种计算机可读存储介质,其存储有能够被处理器加载并执行上述逻辑控件拖拽显示方法的计算机程序,计算机程序被处理器执行时实现前述方案的所有步骤,故不在此赘述。

本申请公开了一种数据不可删除的方法、移动终端以及存储介质,涉及数据存储领域,其中,所述方法包括步骤:获取存储设备内的文件的位置信息;接收用户输入命令;判断用户输入的命令类型;当用户输入命令为正常命令时,按照正常命令处理流程处理;当用户输入命令为修改或删除文件位置信息命令时,断开所述存储设备与终端的连接,本申请所述方案,能够对用户输入的命令进行判断,当用户输入的命令为修改或删除存储设备内的文件信息时,断开所述存储设备与终端的连接,保证存储设备内的信息安全性。

本具体实施方式的实施例均为本申请的较佳实施例,并非依此限制本申请的保护范围,故:凡依本申请的结构、形状、原理所做的等效变化,均应涵盖于本申请的保护范围之内。

相关技术
  • 一种数据不可删除的方法、移动终端以及存储介质
  • 一种照片删除方法、移动终端和计算机可读存储介质
技术分类

06120112422582