凱撒密文的破解程式設計實現

2021-09-05 21:41:27 字數 1549 閱讀 4343

由於它是一種對稱密碼體制,加解密的金鑰是一樣的,下邊簡單說明一下加解密加密過程:

密文:c=m+k  (mod 26)

解密過程:

明文:m=c-k  (mod 26)

破解時主要利用了概率統計的特性,e字母出現的概率最大。

下面重點說一下解密的程式實現:我是用c寫的,在vc6.0下調試執行正確

1#include

"stdio.h"2

#include

"ctype.h"3

#include

"stdlib.h"4

56main(

intargc ,

char

*argv)

7                                         

//判斷程式輸入引數是否正確

2930

31if

((fp_ciper

=fopen(argv[1],

"r"))

==null)

3236

while

((ch_ciper

=fgetc(fp_ciper))

!=eof)

37switch

(ch_ciper)

3867

fclose(fp_ciper);

6869

for(i=0

;i<

26;i++)

70if

(num[i]

>

temp)

7175

if(j

<5)

76key=(j

+1+26

)-5;                       

//是按字母表的第幾位計算

77//

而不是按下標,故加1

78//

5是指e在字母表中的位序

79else

80key=(j

+1)-

5;8182

83if

((fp_ciper

=fopen(argv[1],

"r"))

==null)

84                                         

//再次開啟密文,進行解密

88if

((fp_plain

=fopen(argv[2],

"w"))

==null)

89                                         

//把明文存到此檔案

93while

((ch_ciper

=fgetc(fp_ciper))

!=eof)

94102

fclose(fp_ciper);

103fclose(fp_plain);

104printf(

"解密成功,金鑰key=%d,明文已儲存到檔案中,謝謝使用!\n

",key);

105} 

106

凱撒密文的破解程式設計實

凱撒密文的破解程式設計實現 凱撒密文的破解程式設計實現 近來安全的發展,對密碼學的研究越來越重要,雖然我們現在大多採用的是 非對稱密碼體制,但是同時由於處理及其它的一些重要原因,對傳統密碼仍然 是在大量的使用,如移位,替代的基本思想仍然沒有改變,我個人認為,將來 的很長時間內,我們必將會花大量的時間...

凱撒密碼的java實現

簡單的加密方式,基本原理就不說了,谷歌一大堆,中也寫了注釋。已封裝,可根據實際需求更改加密 解密規則。package helper 凱撒密碼加密與解密幫助類 author chenql public class caesarcodehelper else if chararray i a chara...

凱撒密碼的簡單實現

凱撒密碼作為一種最為古老的對稱加密體制,在古羅馬的時候都已經很流行,他的基本思想是 通過把字母移動一定的位數來實現加密和解密。明文中的所有字母都在字母表上向後 或向前 按照乙個固定數目進行偏移後被替換成密文。例如,當偏移量是3的時候,所有的字母a將被替換成d,b變成e,以此類推x將變成a,y變成b,...