導航:首頁 > 文檔加密 > 字母移位加密演算法

字母移位加密演算法

發布時間:2022-09-02 15:23:53

㈠ 這是什麼演算法我知道加密密碼和原密碼

所謂加密演算法就是指將信息變成密文的計算方法。有的加密演算法就是對信息進行簡單的替換或亂序這種加密演算法最明顯的缺陷就是演算法本身必須保證是安全的現代加密演算法通常都需要密鑰來完成對信息的加密運算,演算法本身可以公開理論上只要保證密鑰的安全就能保證信息的安全。
最早的愷撒密文就是一種簡單的字母替換加密演算法演算法本身非常簡單但同時也是最容易破解的演算法其加密方式就是按照其在英文字母表裡的順序將字母循環移位整個演算法可歸結為下面的公式
f(x)
=
(
x
+
s
)
mod
26
其中x是原文字母s是一個常數例如如果s等於3則字母a就被加密為d,而字母z就被加密為c
這種加密方法雖然簡單但是缺點也是顯而易見的比如明文中字母c出現的次數是5次的話則加密後對應的字母出現的次數也是5次也就是說字母出現的頻率沒有變化。比如e是英文中最常用的字母那麼給定一個足夠大的密文該文中出現,最多的字母很可能就是e。如果不是那可能是a、i或q。密碼學專家只用十幾個密碼字母就能很快的進行這種統計攻擊。現代加密演算法與這種簡單的字母替換演算法不同的地方在於加密演算法的安全性基於用於加密的密鑰而不是演算法本身對於好的加密演算法即使公開其演算法設計原理也不會對其安全性產生絲毫的影響只要用於加密的密鑰是安全的則被加密的信息也就是安全的

㈡ 愷撒移位密碼,將字母順序後移5位的時候: 明文 F O R E S T 密文 K T W J X Y

如果你問的是電報碼,那就還有中文電碼,即用四個數字的組合代表漢字,一種無理碼,差不多除了死記外無規律可循,現在基本不同了。
其實,如果是電報碼,有一種就夠了,何必再去發明呢?

如果您問的是密碼,介紹幾種常見密碼形式:
1、柵欄易位法。
即把將要傳遞的信息中的字母交替排成上下兩行,再將下面一行字母排在上面一行的後邊,從而形成一段密碼。
舉例:盜用阿洗一個例子^^
TEOGSDYUTAENNHLNETAMSHVAED
解:
將字母分截開排成兩行,如下
T E O G S D Y U T A E N N
H L N E T A M S H V A E D
再將第二行字母分別放入第一行中,得到以下結果
THE LONGEST DAY MUST HAVE AN END.
2、愷撒移位密碼。
也就是一種最簡單的錯位法,將字母表前移或者後錯幾位,例如:
明碼表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密碼表:DEFGHIJKLMNOPQRSTUVWXYZABC
這就形成了一個簡單的密碼表,如果我想寫frzy(即明文),那麼對照上面密碼表編成密碼也就是iucb(即密文)了。密碼表可以自己選擇移幾位,移動的位數也就是密鑰。
3、進制轉換密碼。
比如給你一堆數字,乍一看頭暈暈的,你可以觀察數字的規律,將其轉換為10進制數字,然後按照每個數字在字母表中的排列順序,拼出正確字母。
舉例:110 10010 11010 11001
解:
很明顯,這些數字都是由1和0組成,那麼你很快聯想到什麼?二進制數,是不是?嗯,那麼就試著把這些數字轉換成十進制試試,得到數字6 18 26 25,對應字母表,破解出明文為frzy,呵呵~
4、字母頻率密碼。
關於詞頻問題的密碼,我在這里提供英文字母的出現頻率給大家,其中數字全部是出現的百分比:
a 8.2 b 1.5 c 2.8 d 4.3
e 12.7 f 2.2 g 2.0 h 6.1
i 7.0 j 0.2 k 0.8 l 4.0
m 2.4 n 6.7 o 7.5 p 1.9
q 0.1 r 6.0 s 6.3 t 9.1
u 2.8 v 1.0 w 2.4 x 0.2
y 2.0 z 0.1
詞頻法其實就是計算各個字母在文章中的出現頻率,然後大概猜測出明碼表,最後驗證自己的推算是否正確。這種方法由於要統計字母出現頻率,需要花費時間較長,本人在此不舉例和出題了,有興趣的話,參考《跳舞的小人》和《金甲蟲》。
5、維熱納爾方陣。
上面所說的頻率分析,很容易破解較長篇幅的密文,於是維熱納爾繼承前人的經驗,創造出了這個維熱納爾方陣,從而克服了詞頻分析輕易能夠破解密碼的弊端,成為一種較為強大的密碼編譯形式。
a b c d e f g h i j k l m n o p q r s t u v w x y z
1 B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
2 C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
3 D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
4 E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
5 F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
6 G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
7 H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
8 I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
9 J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
10 K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
11 L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
12 M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
13 N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
14 O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
15 P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
16 Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
17 R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
18 S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
19 T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
20 U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
21 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
22 W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
23 X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
24 Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
25 Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
以上就是維熱納爾方陣,它由明碼表(第一行的字母)、密碼表(下面26行)和密鑰組成,下面我舉個例子說明。
舉例:
密鑰:frzy
密碼:qfuc
解:第一個字母,看以f開頭第五行,對應明碼表查找q字母所標示的字母為l。以此類推找出後面字母。所得明文為love。
一些新興的密碼形式:
1、利用鍵盤
無論是計算機鍵盤,還是手機鍵盤,都是出密碼的好工具哦,可以用錯位、或者排列形狀等。使用手機鍵盤和這個同理。另外手機鍵盤還可以在鍵盤的字母上做文章,例如你可以用51表示字母j,用73表示字母r等。
舉例:
r4a6
這個密碼利用計算機鍵盤,將明文字母分別向上移動一個位置,得到密文。破解結果為frzy。
852 74123 74123698 74269 78974123456 7412369
這排數字是不是很暈?其實很簡單,對照小鍵盤,依次打這些字母,看組成的形狀就行了。答案是I L O V E U。
2、字母形狀
本人曾經收到過這樣一個密碼簡訊,不幸被破解,導致發簡訊人被我非常嚴肅地奚落了一番^^!前面我不記得了,只記得後面是hep poo6。這個你可以從手機里打出來,然後把手機倒過來看,形成了密碼的明文,good day~~~:)

20回答者: caibird1122 - 四級 2008-11-10 19:23

㈢ 電文加密演算法:輸入一個小寫字母,將字母循環後移5個位置後輸出。從鍵盤輸入一電文密碼,輸入其相應的密碼

char jiami(char ch)
{
/* 加密小寫字元,其他字元不管 */
if(ch>='a' && ch<='z')
return ('a' + (ch-'a'+5) % 26);
else
return ch;
}

java 字母移位加密

public String(char[] value)
分配一個新的 String,使其表示字元數組參數中當前包含的字元序列。該字元數組的內容已被復制;後續對字元數組的修改不會影響新創建的字元串。

toCharArray

public char[] toCharArray()
將此字元串轉換為一個新的字元數組。

㈤ 說明:凱撒密碼中的英文字母的移位以及25位循環的原理,初學密碼學有些不明白為什麼4段單詞可推出6段的密文

凱撒密碼不是需要數字密匙嗎?你可以把維納熱爾方陣列出來看看,有第26行的 。
例如:phhw ph diwhu wkh wrjd swb 得出:meet me after the toga party

這個密文是倒數3位字母

㈥ 設密文為love,試利通用凱撒密碼(k=3)對其解密,得出明文

1、首先通過把字母移動一定的位數來實現加密和解密。明文中的所有字母都在字母表上向後按照一個固定數目進行偏移後被替換成密文。

㈦ C語言凱撒加密是一種移位替代加密演算法,即將字母表A-Z向左移位,然後用移位後的字母表替原來的明文得到密文

#include<iostream>
#include<string>

usingnamespacestd;

intmain()
{
stringcode;//儲存初始字元串
stringd_code;//加密後的字元串
inti;
intn;//移位的個數
cout<<"Enterthestring"<<endl;
cin>>code;
cout<<"howmanystepdoyouwanttomove?"<<endl;
cin>>n;
for(i=0;i<code.size();++i)
{
if(int(code[i])>97)
{
if(int(code[i])+n>122)
d_code[i]=int(code[i])+n-26;
else
d_code[i]=int(code[i])+n;
}
elseif(int(code[i])+n>90)
d_code[i]=char(int(code[i])+n-26);
else
d_code[i]=char(int(code[i]+n));
}
for(i=0;i<code.size();++i)
{
cout<<d_code[i];
}
cout<<endl;
cout<<"Code="<<code<<endl;
return0;
}

㈧ C++字母移位加密代碼。解釋一下主函數裡面每行語句的意思。

我的分析如下,希望能幫到你: char a[]={"book"}; //把待加密的字母保存到數組a中
n=sizeof(a)-1; //取得待加密的字母個數
for (int i=0;i<n;i++) {
a[i]=a[i]+5; //用for循環使得a數組中每個字母分別加5,並分別保存到a數組中
cout<<a[i]; //輸出加密後的字母
}
int b;cin>>b; //這個是獲取一個輸入,估計這是起到暫停作用。
}

㈨ 位加密(或移位加密)代碼怎麼樣寫

char getkey(char txt) { char e = "dfwkekgodsfdfwkdsf";//一定位數的字元串,比如32位 int ctr=0; char tmp = ''; for (int i=0;i<strlen(txt);i++) { if (ctr == strlen(e)) ctr=0;//當ctr長度為上面 e 的長度時,重新置為0 tmp += substr(txt,i,i+1) ^ substr(e,ctr,ctr+1);//將 txt的第i個字元 與 e 的第 ctr個字元 異或運算 並添加入 tmp字串中 ctr++;// ctr 自增 } return tmp;//返回得到的tmp字串 } char encrypt(txt) { srand((double)microtime()*1000000);//設置時間種子 char encrypt_key = md5(rand(0,32000));//得到32為加密字串; 這里目的就是每次運行時得到的字串都不一樣 int ctr=0; int tmp = ""; for (int i=0;i<strlen(txt);i++) { if (ctr==strlen(encrypt_key)) ctr=0; tmp += substr(encrypt_key,ctr,ctr+1) . (substr(txt,i,i+1) ^ substr(encrypt_key,ctr,ctr+1)); ctr++; } return getkey(tmp); } char decrypt(txt) { char txt = getkey(txt); char tmp = ""; for (int i=0;i<strlen(txt);i++) { md5st = substr(txt,i,i+1); i++; tmp += (substr(txt,i,i+1) ^ md5st); } return tmp; }

㈩ 達芬奇密碼j mpwf zpv

這是經過字母移位的加密演算法得到的密文。

明文:I love you
加密演算法:每個字母向後一字母變換,如a變成b,b變成c,c變成d……z變成a。
密文:j mpwf zpv

PS,如果《達芬奇密碼》沒有,那麼我沒記錯的話就是出自他的《數字城堡》

閱讀全文

與字母移位加密演算法相關的資料

熱點內容
香港台灣dns伺服器地址列表 瀏覽:537
大同app怎麼樣 瀏覽:438
php去掉特殊字元 瀏覽:387
androidapi中文合集 瀏覽:658
win7下安裝linux虛擬機 瀏覽:838
雲主機用別的伺服器嗎 瀏覽:922
黑馬買入指標源碼副圖 瀏覽:962
微軟為什麼會把伺服器放在水底 瀏覽:257
php截取字元串中文 瀏覽:21
虛擬機和編譯軟體哪個好 瀏覽:750
存儲伺服器為什麼比通用伺服器難 瀏覽:373
用php列印出前一天的時間 瀏覽:369
2010編譯方法 瀏覽:239
華為哪裡查看隱藏app 瀏覽:889
linux網卡重置 瀏覽:830
框架柱低於四米箍筋全高加密 瀏覽:694
米二如何安卓版本升級到高安卓版 瀏覽:783
安卓手機數據慢怎麼辦 瀏覽:727
雙底買賣指標公式源碼無未來函數 瀏覽:685
我的世界伺服器換電腦怎麼玩 瀏覽:215