如何从加密文件中获取文件类型?

How to get file type from encrypted file?

如何使用 C# 从加密文件(即 file.enc)中获取 文件类型

加密方式:移位密码Z256

移位密码加密:

Yi = (Xi + k) % 256

Xi = (Yi - k) % 256

其中:

Xi, i = 1 : n, 是普通字节的输入。

Yi, i = 1 : n, 是输出密码字节。

k是shift键,是1到255之间的一个秘密字节。

如果我必须先解密文件,我如何在不使用详尽搜索找到 shift 键的情况下解密它?

我不是在谈论获得 .enc,因为我已经可以轻松做到这一点。我无法确定文件在加密之前的状态,例如 .doc.xls.pdf.jpg.wav 文件类型。

我尝试过的:

byte[] byteArray = File.ReadAllBytes(openFileDialog1.FileName);

// Mean
double mean = 0;

for (int i = 0; i < byteArray.Length; i++)
{
    mean += byteArray[i];
}

mean = mean / byteArray.Length;
txtMean.Text = mean.ToString("#.000");

// Median
byteArray.ToList().Sort();
int median = byteArray[(int)Math.Floor((decimal)(byteArray.Length / 2))];
txtMedian.Text = median.ToString();

// Mode
var groups = byteArray.GroupBy(g => g);
int maxCount = groups.Max(g => g.Count());
int mode = groups.First(g => g.Count() == maxCount).Key;
txtMode.Text = mode.ToString();

// Standard Deviation
double standardDeviation = byteArray.Select(value => (value - mean) * (value - mean)).Sum();
standardDeviation = Math.Sqrt(standardDeviation / byteArray.Length);
txtStandardDeviation.Text = standardDeviation.ToString("#.000");

// Entropy (I don't know how to get this part.)
int entropy = 0;
txtEntropy.Text = entropy.ToString();

所以,从这里你可以看到我获取文件,读取文件的所有字节并找到 meanmedianmodestandard deviation,和 entropy 个值。

顺便问一下,我不知道如何找到文件的熵值,是否有一些公式或 C# 内置方法?我已经搜索过了,但一无所获。

我认为使用 mode 值可以确定文件类型,但它只能确定 .pdf 个文件,因为 .pdf 个文件的模式为 48。

.doc.xls.docx.xlsx.jpg.wav 文件都给我模式 0。

我还尝试使用以下页面读取字节:

ASCII 字符代码表 1 - https://msdn.microsoft.com/en-us/library/60ecse8t(v=vs.80).aspx ASCII 字符编码表 2 - https://msdn.microsoft.com/en-us/library/9hxt0028(v=vs.80).aspx

使用此代码:

string str = Encoding.ASCII.GetString(byteArray).Substring(0, 256);

但这只是 returns 乱码,我无法确定文件类型的差异。

如果它是“凯撒变换”,那么您只需 运行 按字母顺序排列,尝试每一种可能的变换,只有 25 个。

NBCM CM UH YRUGJFY
nbcm cm uh yrugjfy
ocdn dn vi zsvhkgz
pdeo eo wj atwilha
qefp fp xk buxjmib
rfgq gq yl cvyknjc
sghr hr zm dwzlokd
this is an example
uijt jt bo fybnqmf
vjku ku cp gzcorng
wklv lv dq hadpsoh
xlmw mw er ibeqtpi
ymnx nx fs jcfruqj
znoy oy gt kdgsvrk
aopz pz hu lehtwsl
bpqa qa iv mfiuxtm
cqrb rb jw ngjvyun
drsc sc kx ohkwzvo
estd td ly pilxawp
ftue ue mz qjmybxq
guvf vf na rknzcyr
hvwg wg ob sloadzs
iwxh xh pc tmpbeat
jxyi yi qd unqcfbu
kyzj zj re vordgcv
lzak ak sf wpsehdw
mabl bl tg xqtfiex
nbcm cm uh yrugjfy