1

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

加密方法:移位密码 Z 256

移位密码加密:

Y i = (X i + k) % 256

X i = (Y i - k) % 256

在哪里:

X i , i = 1 : n 是纯字节的输入。

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

k 是移位键,它是 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 deviationentropy值。

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

我认为使用该mode值将能够确定文件类型,但它仅确定.pdf文件,因为.pdf文件的模式为 48。

.doc, .xls, .docx, .xlsx,.jpg.wavfiles 都给我一个 0 的模式。

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

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

使用此代码:

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

但它只是返回乱码,我无法确定文件类型的差异。

4

1 回答 1

1

如果它是“凯撒换档”,那么你只需按照字母表的顺序,尝试每个可能的换档,其中只有 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
于 2015-05-29T17:08:54.763 回答