凱撒加密法(取模移位)

2021-10-10 08:32:12 字數 1125 閱讀 9325

題目描述

凱撒加密法,或稱愷撒加密、愷撒變換、變換加密,是一種最簡單且最廣為人知的加密技術。它是一種替換加密的技術,明文中的所有字母都在字母表上向後(或向前)按照乙個固定數目進行偏移後被替換成密文。

例如,當偏移量是左移3的時候:

明文本母表:abcdefghijklmnopqrstuvwxyz

密文字母表:defghijklmnopqrstuvwxyzabc

使用時,加密者查詢明文本母表中需要加密的訊息中的每乙個字母所在位置,並且寫下密文字母表中對應的字母。需要解密的人則根據事先已知的金鑰反過來操作,得到原來的明文。例如:

明文:the quick brown fox jumps over the lazy dog

密文:wkh txlfn eurzq ira mxpsv ryhu wkh odcb grj

現在給定你乙個字串s(長度不會超過1000000)和乙個整數k(-1000000000<=k<=1000000000),分別代表接受者收到的密文和在加密該密文時向後的偏移量,你的任務是計算出原來的明文

注意:只有字母在加密時才會發生偏移,其它字元保持不變

輸入輸入包含多組資料,其中第一行為資料組數t(t<=10)

每組資料第一行為乙個字串s,由數字、字母以及常見字元組成(不含空格),第二行為乙個整數k代表加密時向後的偏移量(|s|<=1000000,-1000000000<=k<=1000000000)

輸出對每組資料,輸出一行字串,代表輸入中的密文對應的明文。

樣例輸入

1defghijklmnopqrstuvwxyzabc

3樣例輸出

abcdefghijklmnopqrstuvwxyz

#include

using

namespace std;

#define ll long long

string str[15]

;int t,off[15]

;int

main()

for(

int i =

0; i < t; i++

) cout<< str[i]

<< endl;

}return0;

}

凱撒加密法

凱撒加密法,或稱愷撒加密 愷撒變換 變換加密,是一種最簡單且最廣為人知的加密技術。它是一種替換加密的技術,明文中的所有字母都在字母表上向後 或向前 按照乙個固定數目進行偏移後被替換成密文。主要思想 與rot13方式相似,向後向前偏移進行加密解密 加密 def encrypt caesar shift...

凱撒加密法

根據金鑰以不同方式加密訊息,金鑰是從0到25的整數。將明文通過有序替換的方式變成密文,及將明文在密文字典的位置加上金鑰數值後鎖定密文字典裡的新文字就成了密文。此方法缺點就是當知道了字典後可以嘗試暴力破解。密文字典 global letters letters abcdefghijklmnopqrst...

凱撒密碼,凱撒加密解密

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...