计算机文件的类型通过文件的,是什么原因导致计算机将文件识别为某种文件类型?以及如何更改它(使用java)?...

我在java中创建一个读取文件输入流的程序,通过根据密码更改字节数来加密它,并创建一个新的加密文件.

例如:

我创建了一个包含以下单词的测试文件:

这是一个测试,看看加密器项目是否有效.

当我读取java中的字节时,我得到:

[84,104,105,115,32,105,115,32,97,32,116,101,115,116,32,116,111,32,115,101,101,32,105,102,32 ,116,104,101,32,101,110,99,114,121,112,116,101,114,32,112,114,111,106,101,99,116,32,119,111,114 ,107,115,46,10]

那么我取每个字节的值,并减去密码的unicode值,并得到它的绝对值.然后我把它写到一个文件.

我正在玩不同的算法来加密它,并开始在测试文本文件上测试它.我正在使用Linux,所以没有文件扩展名(例如.txt,.pdf等…)我注意到几次加密后,计算机不再将其识别为文本文件,而是,作为图像文件! (意思是当你点击它时,默认情况下,它会尝试在图像编辑器中打开文件)

所以这是我的问题:

1.是什么原因导致计算机将文件识别为某种文件类型?

>我猜它与文件中的某个地方有某些字节有关,但除此之外,我迷路了.

2.存储此信息的文件在哪里?

>我希望即使在加密之后也能够将文件保持为相同的文件类型,所以我想,如果,例如,如果文件类型信息在前10个字节中,我会在之后加密所有内容,但保留前10个字节,例如.

3.文件类型信息是否标准?

>这些字节是否具有所有平台的标准含义(即.pdf文件是pdf文件,无论您使用它的计算机是什么.是因为.pdf扩展名,还是因为字节是在文件的某个地方.)

4.假设文件类型由于文件中的字节而被识别,我该如何更改文件类型?

>我在哪里可以找到文件中字节含义的列表?

解决方法:

在传统的UNIX系统上,仅通过查找文件中出现的特定字节模式来识别文件.

file命令使用魔术配置文件(通常是/ etc / magic,或/usr/share / file / magic),其中包含定义这些字节模式的规则.

就是这样 – 没有特别的额外元数据 – 这一切都是通过对内容的分析来完成的.

标签:java,linux,byte,file-type

来源: https://codeday.me/bug/20190530/1183736.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值