如何从加密文件(即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();
因此,您可以看到我获取文件,读取文件的所有字节并找到mean
,median
,mode
,standard deviation
和{ {1}}值。
顺便说一句,我不知道如何找到文件的熵值,是否有一些公式或者C#内置方法?我搜索过,但一无所获。
我认为使用entropy
值可以确定文件类型,但它只确定mode
个文件,因为.pdf
文件的模式为48。
.pdf
,.doc
,.xls
,.docx
,.xlsx
和.jpg
文件都为我提供了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
使用此代码:
.wav
但它只是返回了我无法确定文件类型差异的乱码。
答案 0 :(得分:1)
如果是&#39; Caesar Shift &#39;,那么您只需按字母顺序排列,尝试每个可能的班次,其中只有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