文件分片存储、分片文件重组方法及装置、文件保护系统
技术领域
本发明涉及文件保护
技术领域
,具体地,涉及一种文件分片存储、分片文件重组方法及装置、文件保护系统。背景技术
分布式存储系统采用切片形式存放文件内容,在文件系统结构明确情况下可以根据不同切片恢复文件内容。同一切片按照文件顺序分段,因此切片内容被获取后会出现信息泄露。
目前解决切片内容泄露的方法是采用DES、SM4、SM2或RSA等算法通过加密和签名的方式防止切片文件被窃取、篡改和抵赖,但一旦加密系统被破解则以上安全措施形同虚设:传统加密系统基于素数运算,攻击者采用量子计算机可以及时破译。
发明内容
本发明实施例的主要目的在于提供一种文件分片存储、分片文件重组方法及装置、文件保护系统,以安全保护文件,防止文件被恶意窃取后破译。
为了实现上述目的,本发明实施例提供一种文件分片存储方法,包括:
获取待分片文件和分片数量;其中,待分片文件包括多个字节;
根据分片数量设置多个分片文件;
根据各字节对应的随机数将各字节放入随机数对应的分片文件中进行存储。
本发明实施例还提供一种文件分片存储装置,包括:
分片获取模块,用于获取待分片文件和分片数量;其中,待分片文件包括多个字节;
分片文件设置模块,用于根据分片数量设置多个分片文件;
存储模块,用于根据各字节对应的随机数将各字节放入随机数对应的分片文件中进行存储。
本发明实施例的文件分片存储方法及装置根据分片数量设置多个分片文件,并根据待分片文件的各字节对应的随机数将各字节放入随机数对应的分片文件中进行存储,可以安全保护文件,防止文件被恶意窃取后破译。
本发明实施例还提供一种分片文件重组方法,包括:
获取随机数序列和多个分片文件;其中,随机数序列包括多个随机数,各分片文件均包括至少一个字节;
创建重组文件;
按照随机数序列从各分片文件中依次提取各随机数对应的字节,将字节依次放入重组文件中。
本发明实施例还提供一种分片文件重组装置,包括:
获取模块,用于获取随机数序列和多个分片文件;其中,随机数序列包括多个随机数,各分片文件均包括至少一个字节;
重组文件创建模块,用于创建重组文件;
提取模块,用于按照随机数序列从各分片文件中依次提取各随机数对应的字节,将字节依次放入重组文件中
本发明实施例的分片文件重组方法及装置按照随机数序列从各分片文件中依次提取各随机数对应的字节,将字节依次放入重组文件中,可以安全保护文件,防止文件被恶意窃取后破译。
本发明实施例还提供一种文件保护系统,包括:
如上所述的文件分片存储装置;
如上所述的分片文件重组装置。
本发明实施例的文件保护系统可以安全保护文件,防止文件被恶意窃取后破译。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中文件分片存储方法的流程图;
图2是本发明第一实施例中文件分片的示意图;
图3是本发明第二实施例中文件分片与重组的示意图;
图4是本发明一实施例中分片文件重组方法的流程图;
图5是本发明第一实施例中分片文件重组方法的流程图;
图6是本发明一实施例中文件修改的流程图;
图7是本发明实施例中文件分片存储装置的结构框图;
图8是本发明实施例中分片文件重组装置的结构框图;
图9是本发明实施例中文件保护系统的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
鉴于现有技术的加密系统被破解后安全措施形同虚设,本发明实施例提供一种文件分片存储、分片文件重组方法及装置、文件保护系统,将文件内容随机化分片为N个新文件,打乱文件内容语意,然后分别在分布式存储介质中存放。当作业人员需要对文件进行操作时,需要先从分布式存储介质中读取所有分片文件,将分片文件重组为新文件后进行文件操作,并对操作后的文件重新进行分片写入,可以安全保护文件,防止文件被恶意窃取后破译。以下结合附图对本发明进行详细说明。
图1是本发明一实施例中文件分片存储方法的流程图。图2是本发明第一实施例中文件分片的示意图。图3是本发明第二实施例中文件分片与重组的示意图。如图1-图3所示,文件分片存储方法包括:
S101:获取待分片文件和分片数量;其中,待分片文件包括多个字节。
在第一实施例中,如图2所示,获取待分片文件F与分片数量N。图2中的N=4。待分片文件F包括8个字节:ABCDEFGH。
在第二实施例中,如图3所示,获取待分片文件(消息文件)M与分片数量N。图2中的N=4。待分片文件M包括7个字节:ABCDEFG。
S102:根据分片数量设置多个分片文件。
具体实施时,可以根据N个分片数量设置N个分片文件。
在第一实施例中,图2中的N=4,则设置四个分片文件:f0、f1、f2和f3。
在第二实施例中,图3中的N=4,则设置四个分片文件:m0、m1、m2和m3。
S103:根据各字节对应的随机数将各字节放入随机数对应的分片文件中进行存储。
在执行S103之前,还包括:根据各字节在待分片文件的位置从预先获取的随机数序列中获取各字节对应的随机数。
具体实施时,待分片文件F的第i个字节对应随机数序列中的第i个随机数,待分片文件M的第i个字节对应随机数序列中的第i个随机数。
在第一实施例中,如图2所示,随机数序列中的第一个随机数为3、第二个随机数为4、第三个随机数为5、第四个随机数为10、第五个随机数为8、第六个随机数为22、第七个随机数为30、第八个随机数为5;则待分片文件F的第一个字节A对应第一个随机数3、第二个字节B对应第二个随机数4、第三个字节C对应第三个随机数5、第四个字节D对应第四个随机数10、第五个字节E对应第五个随机数8、第六个字节F对应第六个随机数22、第七个字节G对应第七个随机数30、第八个字节H对应第八个随机数5。
在第二实施例中,如图3所示,随机数序列中的第一个随机数为10、第二个随机数为5、第三个随机数为3、第四个随机数为7、第五个随机数为8、第六个随机数为0、第七个随机数为1、第八个随机数为9、第九个随机数为3;则待分片文件M的第一个字节A对应第一个随机数10、第二个字节B对应第二个随机数5、第三个字节C对应第三个随机数3、第四个字节D对应第四个随机数7、第五个字节E对应第五个随机数8、第六个字节F对应第六个随机数0、第七个字节G对应第七个随机数1。
在执行S103之前,还包括:根据随机数和分片数量确定随机数对应的分片文件。
具体实施时,第i个随机数R[i]对应第p=R[i]%N+1个分片文件,即第i个随机数除以分片数量N所得的余数为p-1,第i个随机数对应第p个分片文件。
以图2为例,第一个随机数3对应第四个分片文件f3、第二个随机数4对应第一个分片文件f0、第三个随机数5对应第二个分片文件f1、第四个随机数10对应第三个分片文件f2、第五个随机数8对应第一个分片文件f0、第六个随机数22对应第三个分片文件f2、第七个随机数30对应第三个分片文件f2、第八个随机数5对应第二个分片文件f1。
以图3为例,第一个随机数10对应第三个分片文件m2、第二个随机数5对应第二个分片文件m1、第三个随机数3对应第四个分片文件m3、第四个随机数7对应第四个分片文件m3、第五个随机数8对应第一个分片文件m0、第六个随机数0对应第一个分片文件m0、第七个随机数1对应第二个分片文件m1。
S103具体包括:根据各字节对应的随机数将各字节放入随机数对应的分片文件的尾部进行存储,分片文件位于不同的分布式存储介质中。
以图2为例,根据待分片文件F的第一个字节A对应的第一个随机数3将A放入第一个随机数3对应的第四个分片文件f3的尾部,根据第二个字节B对应的第二个随机数4将B放入第二个随机数4对应的第一个分片文件f0的尾部,根据第三个字节C对应的第三个随机数5将C放入第三个随机数5对应的第二个分片文件f1的尾部,根据第四个字节D对应的第四个随机数10将D放入第四个随机数10对应的第三个分片文件f2的尾部,根据第五个字节E对应的第五个随机数8将E放入第五个随机数8对应的第一个分片文件f0的尾部,根据第六个字节F对应的第六个随机数22将F放入第六个随机数22对应的第三个分片文件f2的尾部,根据第七个字节G对应的第七个随机数30将G放入第七个随机数30对应的第三个分片文件f2的尾部,根据第八个字节H对应的第八个随机数5将H放入第八个随机数5对应的第二个分片文件f1的尾部。
因此,第一个分片文件f0存储的字节为BE,第二个分片文件f1存储的字节为CH,第三个分片文件f2存储的字节为DFG,第四个分片文件f3存储的字节为A。
以图3为例,根据待分片文件M的第一个字节A对应的第一个随机数10将A放入第一个随机数10对应的第三个分片文件m2的尾部,根据第二个字节B对应的第二个随机数5将B放入第二个随机数5对应的第二个分片文件m1的尾部,根据第三个字节C对应的第三个随机数3将C放入第三个随机数3对应的第四个分片文件m3的尾部,根据第四个字节D对应的第四个随机数7将D放入第四个随机数7对应的第四个分片文件m3的尾部,根据第五个字节E对应的第五个随机数8将E放入第五个随机数8对应的第一个分片文件m0的尾部,根据第六个字节F对应的第六个随机数0将F放入第六个随机数0对应的第一个分片文件m0的尾部,根据第七个字节G对应的第七个随机数1将G放入第七个随机数1对应的第二个分片文件m1的尾部。
因此,第一个分片文件m0存储的字节为EF,第二个分片文件m1存储的字节为BG,第三个分片文件m2存储的字节为A,第四个分片文件m3存储的字节为CD。
在第一实施例中,执行S103之后还包括:将各分片文件发送至分布式存储介质,生成本地临时存储文件以存储各分片文件所在的分布式存储介质的存储地址。
如图3所示,在第二实施例中,执行S103之后还包括:随机选取各分片文件对应的各传输链路,将各分片文件通过对应的传输链路传输至接收端。针对各分片文件,可以从L条传输链路中随机选择一条链路l=random%|L|进行传输。例如,将第一个分片文件m0和第四个分片文件m3通过最后一条链路传输至接收端的分布式存储介质进行存储,将第二个分片文件m1通过第一条链路传输至接收端的分布式存储介质进行存储,将第三个分片文件m2通过第二条链路传输至接收端的分布式存储介质进行存储。传输的分片文件的结构为{Msg_ID+分片文件ID+分片文件内容},Msg_ID为待分片文件ID。
图1所示的文件分片存储方法的执行主体可以为发送端。由图1所示的流程可知,本发明实施例的文件分片存储方法根据分片数量设置多个分片文件,并根据待分片文件的各字节对应的随机数将各字节放入随机数对应的分片文件中进行存储,可以安全保护文件,防止文件被恶意窃取后破译。
图4是本发明一实施例中分片文件重组方法的流程图。图5是本发明第一实施例中分片文件重组方法的流程图。如图4-图5所示,分片文件重组方法包括:
S201:获取随机数序列和多个分片文件;其中,随机数序列包括多个随机数,各分片文件均包括多个字节。
在第一实施例中,先读取本地临时存储文件以获得分片文件存储地址,再根据分片文件存储地址从各分布式介质中读取分片文件f0、f1、f2和f3。第一个分片文件f0包括字节BE,第二个分片文件f1包括字节CH,第三个分片文件f2包括字节DFG,第四个分片文件f3包括字节A。文件分片存储装置与分片文件重组装置预先同步定义的随机数序列为[3,4,5,10,8,22,30,5,...]。
在第二实施例中,获取来自各传输链路的多个分片文件m0、m1、m2和m3。第一个分片文件m0包括字节EF,第二个分片文件m1包括字节BG,第三个分片文件m2包括字节A,第四个分片文件m3包括字节CD。发送端与接收端预先同步定义的随机数序列为[10,5,3,7,8,0,1,9,3,...]。
S202:创建重组文件。
在第一实施例中,设重组文件为F'。
在第二实施例中,设重组文件(消息文件)为M'。
S203:按照随机数序列从各分片文件中依次提取各随机数对应的字节,将字节依次放入重组文件中。
在执行S203之前,还包括:根据各随机数和分片文件的数量确定各随机数对应的分片文件。
具体实施时,第i个随机数R[i]对应第p=R[i]%N+1个分片文件,即第i个随机数除以分片数量N所得的余数为p-1,则第i个随机数对应第p个分片文件。
在第一实施例中,如图2所示,第一个随机数3对应第四个分片文件f3、第二个随机数4对应第一个分片文件f0、第三个随机数5对应第二个分片文件f1、第四个随机数10对应第三个分片文件f2、第五个随机数8对应第一个分片文件f0、第六个随机数22对应第三个分片文件f2、第七个随机数30对应第三个分片文件f2、第八个随机数5对应第二个分片文件f1。
在第二实施例中,如图3所示,第一个随机数10对应第三个分片文件m2、第二个随机数5对应第二个分片文件m1、第三个随机数3对应第四个分片文件m3、第四个随机数7对应第四个分片文件m3、第五个随机数8对应第一个分片文件m0、第六个随机数0对应第一个分片文件m0、第七个随机数1对应第二个分片文件m1。
在执行S203之前,还包括:根据各随机数在随机数序列的位置和各随机数对应的分片文件确定各随机数对应的字节。
在第一实施例中,如图2所示,第一个随机数3对应第四个分片文件f3,则第一个随机数3对应第四个分片文件f3中的第一个字节A;第二个随机数4对应第一个分片文件f0,则第二个随机数4对应第一个分片文件f0中的第一个字节B;第三个随机数5对应第二个分片文件f1,则第三个随机数5对应第二个分片文件f1中的第一个字节C;第四个随机数10对应第三个分片文件f2,则第四个随机数10对应第三个分片文件f2中的第一个字节D;第五个随机数8对应第一个分片文件f0,由于先前第二个随机数4已对应第一个分片文件f0中的第一个字节B,则第五个随机数8对应第一个分片文件f0中的第二个字节E;第六个随机数22对应第三个分片文件f2,由于先前第四个随机数10已对应第三个分片文件f2中的第一个字节D,则第六个随机数22对应第三个分片文件f2中的第二个字节F;第七个随机数30对应第三个分片文件f2,由于先前第四个随机数10已对应第三个分片文件f2中的第一个字节D,第六个随机数22已对应第三个分片文件f2中的第二个字节F,则第七个随机数30对应第三个分片文件f2中的第三个字节G;第八个随机数5对应第二个分片文件f1,由于先前第三个随机数5已对应第二个分片文件f1中的第一个字节C,则第八个随机数5对应第二个分片文件f1中的第二个字节H。
在第二实施例中,如图3所示,第一个随机数10对应第三个分片文件m2,则第一个随机数10对应第三个分片文件m2中的第一个字节A;第二个随机数5对应第二个分片文件m1,则第二个随机数5对应第二个分片文件m1中的第一个字节B;第三个随机数3对应第四个分片文件m3,则第三个随机数3对应第四个分片文件m3中的第一个字节C;第四个随机数7对应第四个分片文件m3,由于先前第三个随机数3已对应第四个分片文件m3中的第一个字节C,则第四个随机数7对应第四个分片文件m3中的第二个字节D;第五个随机数8对应第一个分片文件m0,则第五个随机数8对应第一个分片文件m0中的第一个字节E;第六个随机数0对应第一个分片文件m0,由于先前第五个随机数8已对应第一个分片文件m0中的第一个字节E,则第六个随机数0对应第一个分片文件m0中的第二个字节F;第七个随机数1对应第二个分片文件m1,由于先前第二个随机数5已对应第二个分片文件m1中的第一个字节B,则第七个随机数1对应第二个分片文件m1中的第二个字节G。
S203具体包括:按照随机数序列从各分片文件中依次提取各随机数对应的字节,将字节依次放入重组文件的头部进行存储,生成重组文件。
在第一实施例中,如图2所示,第一个随机数3对应第四个分片文件f3中的第一个字节A,第二个随机数4对应第一个分片文件f0中的第一个字节B,第三个随机数5对应第二个分片文件f1中的第一个字节C,第四个随机数10对应第三个分片文件f2中的第一个字节D,第五个随机数8对应第一个分片文件f0中的第二个字节E,第六个随机数22对应第三个分片文件f2中的第二个字节F,第七个随机数30对应第三个分片文件f2中的第三个字节G,第八个随机数5对应第二个分片文件f1中的第二个字节H,则按照随机数在随机数序列中的排列顺序将A、B、C、D、E、F、G和H依次放入重组文件F'的头部,重组后的文件内容为ABCDEFGH。
在第二实施例中,如图3所示,第一个随机数10对应第三个分片文件m2中的第一个字节A,第二个随机数5对应第二个分片文件m1中的第一个字节B,第三个随机数3对应第四个分片文件m3中的第一个字节C,第四个随机数7对应第四个分片文件m3中的第二个字节D,第五个随机数8对应第一个分片文件m0中的第一个字节E,第六个随机数0对应第一个分片文件m0中的第二个字节F,第七个随机数1对应第二个分片文件m1中的第二个字节G,则按照随机数在随机数序列中的排列顺序将A、B、C、D、E、F和G依次放入重组文件M'的头部,重组后的文件内容为ABCDEFG。
图4所示的分片文件重组方法的执行主体可以为位于接收端的分布式存储介质。由图4所示的流程可知,本发明实施例的分片文件重组方法按照随机数序列从各分片文件中依次提取各随机数对应的字节,将字节依次放入重组文件中,可以安全保护文件,防止文件被恶意窃取后破译。
图6是本发明一实施例中文件修改的流程图。如图6所示,在进行文件读取、改写(修改)或查找等操作之前先把分片文件加载到内存并在本地存储中记录分片文件副本。在进行文件修改时,先按照文件重组方法重组文件,再修改重组后的文件内容,然后删除分布式存储介质中已经写入的原分片文件,按照文件分片存储方法重新对修改后的文件进行分片后写入分布式存储介质,最后删除本地存储中的分片文件副本。
基于同一发明构思,本发明实施例还提供了一种文件分片存储装置,由于该装置解决问题的原理与文件分片存储方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
图7是本发明实施例中文件分片存储装置的结构框图。如图7所示,文件分片存储装置包括:
分片获取模块,用于获取待分片文件和分片数量;其中,待分片文件包括多个字节;
分片文件设置模块,用于根据分片数量设置多个分片文件;
存储模块,用于根据各字节对应的随机数将各字节放入随机数对应的分片文件中进行存储。
在其中一种实施例中,还包括:
随机数获取模块,用于根据各字节在待分片文件的位置从预先获取的随机数序列中获取各字节对应的随机数。
在其中一种实施例中,还包括:
分片文件确定模块,用于根据随机数和分片数量确定随机数对应的分片文件。
综上,本发明实施例的文件分片存储装置根据分片数量设置多个分片文件,并根据待分片文件的各字节对应的随机数将各字节放入随机数对应的分片文件中进行存储,可以安全保护文件,防止文件被恶意窃取后破译。
图8是本发明实施例中分片文件重组装置的结构框图。如图8所示,分片文件重组装置包括:
获取模块,用于获取随机数序列和多个分片文件;其中,随机数序列包括多个随机数,各分片文件均包括至少一个字节;
重组文件创建模块,用于创建重组文件;
提取模块,用于按照随机数序列从各分片文件中依次提取各随机数对应的字节,将字节依次放入重组文件中。
在其中一种实施例中,还包括:
分片文件模块,用于根据各随机数和分片文件的数量确定各随机数对应的分片文件;
字节确定模块,用于根据各随机数在所述随机数序列的位置和各随机数对应的分片文件确定各随机数对应的字节。
综上,本发明实施例的分片文件重组装置按照随机数序列从各分片文件中依次提取各随机数对应的字节,将字节依次放入重组文件中,可以安全保护文件,防止文件被恶意窃取后破译。
基于同一发明构思,本发明实施例还提供了一种文件保护系统。图9是本发明实施例中文件保护系统的结构框图。如图9所示,文件保护系统包括:
如上所述的文件分片存储装置;
如上所述的分片文件重组装置。
本发明实施例的文件保护系统的具体流程如下:
1、获取待分片文件和分片数量,待分片文件包括多个字节。
2、根据分片数量设置多个分片文件。
3、根据各字节在待分片文件的位置从预先获取的随机数序列中获取各字节对应的随机数。
4、根据随机数和分片数量确定随机数对应的分片文件。
5、根据各字节对应的随机数将各字节放入随机数对应的分片文件的尾部进行存储,分片文件位于不同的分布式存储介质中。
6、获取随机数序列和多个分片文件;随机数序列包括多个随机数,各分片文件均包括多个字节。
7、创建重组文件。
8、根据各随机数和分片文件的数量确定各随机数对应的分片文件。
9、根据各随机数在随机数序列的位置和各随机数对应的分片文件确定各随机数对应的字节。
10、按照随机数序列从各分片文件中依次提取各随机数对应的字节,将字节依次放入重组文件的头部进行存储,生成重组文件。
综上,本发明实施例提供的文件保护系统采用分布式随机化分片的消息存储方式,可以打乱分布式介质中的消息语义,降低破译风险,解决分布式存储时介质外泄导致的内容安全问题。即使部分介质泄露,仍然可以保护介质内容安全。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元,或装置都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。