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 までの秘密のバイトであるシフト キーです。

最初にファイルを復号化する必要がある場合、徹底的な検索を使用してシフト キーを見つけることなく、どのように復号化できますか?

.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ます。modestandard deviationentropy

ところで、ファイルのエントロピー値を見つける方法がわかりません。これには数式がありますか、それとも C# の組み込みメソッドですか? 検索しましたが、何も見つかりませんでした。

mode値を使用するとファイルの種類を判断できると思いましたが、ファイルのモードは 48 であるため、ファイル.pdfのみを判断します。.pdf

.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-米国/図書館/9hxt0028(v=vs.80).aspx

このコードを使用して:

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

しかし、ファイルタイプの違いを判断できない意味不明なものを返すだけです。

4

1 に答える 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 に答える