當前位置:首頁 » 密碼管理 » 密碼學替換密碼題怎麼做
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

密碼學替換密碼題怎麼做

發布時間: 2022-06-02 12:34:56

❶ 凱撒密碼為一種替換密碼,此題的加密過程為先進行base64編碼,再進行移

在密碼學中,愷撒密碼(或稱愷撒加密、愷撒變換、變換加密)是一種最簡單且最廣為人知的加密技術。它是一種替換加密的技術,明文中的所有字母都在字母表上向後(或向前)按照一個固定數目進行偏移後被替換成密文。
愷撒密碼的加密、解密方法還能夠通過同餘的數學方法進行計算。首先將字母用數字代替,A=0,B=1,...,Z=25。此時偏移量為n的加密方法即為: E(x) = (x + n) mod 26.
解密就是:
D(x) = (x - n) mod 26.
顯而易見,一旦確定了某兩個字母的對應關系(即n的值),這種移位密碼很容易被破解。
因此,為了使密碼有更高的安全性,單字母替換密碼就出現了。
明碼表: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
密碼表: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
但是這種加密方式依然可以破解,根據字母使用頻度表,分析密文中的字母頻率,將其對照即可破解。
不僅如此,凱撒加密對加密數據也是有要求的,一般情況下,它只支持對基本的英文字母進行加密,如果對中文等亞太地區的文字進行加密,結果可想而知,你的隱私將毫無保留的出現在眾人面前。有人說,我們可以擴展這個演算法,使它支持所有的文字,這么做是可行的,如果採用同餘式的方式實現,代碼幾乎不怎麼需要改動,只要字元集本身是Unicode就可以了。但是這種加密的安全性很難滿足應用的要求。如果採用單字母替換的方式,程序將需要構建兩個巨大的字元數組去保存他們的映射關系,而且擴展性也不好,當然也是不可行的。這樣看來,凱撒加密豈不是一無是處了,其實對於一般的應用,凱撒加密還是足以應付的,只要我們對它稍作改進。

❷ 古典古典密碼演算法實現-替換密碼-轉換密碼

package cn.h.e.encrypt;

/*
* 古典密碼演算法之 替代演算法
*
*/
public class Replace {

//當加密或者解密成功時返回CRYPT_OK,失敗時返回CRYPT_ERROR
private final static int CRYPT_OK = 1;
private final static int CRYPT_ERROR = 0;
//設定一共有26個可用字母 字母a的編碼是97
private final static int totalLetter = 26;
private final static int key = 3;

/*
* @param initCode 沒有加密前的字元串
* @CRYPT_OK 加密成功
* @CRYPT_ERROR 加密失敗
*/
public static int encrypt(String initCode)throws Exception{
//用來輸出加密後的字元
StringBuilder sb = new StringBuilder();
for(int i = 0; i < initCode.length(); i++ ){
int initCodeVal = initCode.charAt(i ) - 96;
int targetCodeVal = (initCodeVal + key ) % totalLetter;
if(targetCodeVal == 0) targetCodeVal = 26;
char targetCode = (char)(targetCodeVal +96);
sb.append(targetCode );
}
//以下就是加密後的字元
String targetCode = sb.toString();
System.out.println(targetCode);
return CRYPT_OK;
}

/*
* @param targetCode 加密前的字元串
* @CRYPT_OK 解密成功
* @CRYPT_ERROR 解密失敗
*/
public static int decrypt(String targetCode)throws Exception{
//用來輸出解密後的字元
StringBuilder sb = new StringBuilder();
for(int i = 0; i < targetCode.length(); i++ ){
int targetCodeVal = targetCode.charAt(i ) - 96;

//如果已經來到了字母表的開頭 給他還回去
if(targetCodeVal <= key) targetCodeVal += 26;

int initCodeVal = targetCodeVal - key;
char initCode = (char)(initCodeVal + 96);
sb.append(initCode );
}
//以下就是解密後的字元
String initCode = sb.toString();
System.out.println(initCode);
return CRYPT_OK;
}

❸ 密碼學中同音替換法是什麼

……聽著名字 我猜是把字用相同讀音的其他字換掉吧
比如「游泳」換成「尤勇」

❹ 密碼學的做2個題目!

古典密碼:1、Hill體制 2、維吉尼亞體制 3、雙字的Playfair體制 4、CAESAR體制 5、雙字的Playfair體制 6.古典加密方法 7.代替密碼 8多名碼代替 9多音碼代替 10換位密碼 多表代替 密本

❺ 替換式密碼的介紹

替換式密碼,又名取代加密法,是密碼學中按規律把文字加密的一種方式。替換式密碼中可以用不同的字母數為單元,例如每一個或兩個字母為一單元。密文接收者解密時需用原加密方式解碼才能獲得原文本。由於英語中替換式密碼會把26個字母拆開,使用替換式密碼較為容易;相反,中文需要建立密碼本,然後遂字替換。然而由於中文字極多,完全替換不合經濟效益。而且中文中每個字由不同大小的字根來組字,較難轉換,因此使用替換式密碼的示例比較少。當以替換式密碼與置換式密碼(英語:Transposition cipher)(或稱轉位式密碼或移轉式密碼1)相比較時,會發現轉位式密碼只是把明文中的單元的位置改變,而單元本身沒有作出改變;相反,替換式密碼只是把單元轉換,但密文中單元的位置沒有改變。替換式密碼亦有許多不同類型。如果每一個字母為一單元(或稱元素)進行加密操作,就可以稱之為「簡易替換密碼」(英語:simplesubstitution cipher)或「單表加密」(英語:monoalphabeticcipher)又稱為單字母替換加密;字母群體為單元的加密則稱為「多表加密」(英語:polyalphabeticcipher)或「表格式加密」(英語:polygraphic)。單表加密只可在一個單元中使用同一種替換加密,而多表加密則可在一個單元使用不同的加密方式,明文單元映射到密文上可以有好幾種可能性,反之亦然。

❻ 密碼學方面的習題不會做。。

汗,那麼多題目不會做,都很基礎的題目,自覺點把書看一下吧,書上例題差不多的.