硬破解仿射密码
目录
仿射密码加解密公式

需要破解的原文
Ptfxgj Jnno-afv wn Htzaixojv Tjtxg
Af Yd Mqxzn
Kvif bdxvwsf X wtlv zf svtkv
Tp bdxvwsf tp X htzv qviv;
Bdxvwsf X rtkv jnno-afv
Wn wqv inpf hsndop xg wqv rvpwvig plf.
Wqv jnsovg rxssnrp af wqv ixkvipxov
Tiv fndgj aixovp xg wqv pvwwxgj pdg;
Wqvxi ivcsvhwxngp ng wqv pqxzzvixgj rtkvp
Tsrtfp sxgjvi xg wqv ovuwq nc zf qvtiw.
Wqv csntwxgj qvtiw jinrxgj xg wqv psdojv
Prtfp svxpdivsf dgovi wqv rtwvi;
Xg wqv jvgwsv rtkvp nc Htzaixojv
X rndso av t rtwvi ustgw!
Wqtw unns dgovi wqv pqtov nc vsz wivvp
Qnsop gnw rtwvi adw wqv itxganr cinz wqv plf;
Pqtwwvivo wn uxvhvp tzngj wqv odhlrvvop
Xp wqv pvoxzvgw nc t itxganr-sxlv oivtz.
Wn pvvl t oivtz? Edpw wn unsv t antw dupwivtz
Wn rqviv wqv jivvg jitpp xp zniv kviotgw;
Ni wn qtkv wqv antw cdssf sntovo rxwq pwtisxjqw
Tgo pxgj tsndo xg wqv pusvgoni nc pwtisxjqw.
Adw X htggnw pxgj tsndo
Bdxvwgvpp xp zf ctivrvss zdpxh;
Vkvg pdzzvi xgpvhwp qvtu pxsvghv cni zv
Pxsvgw xp Htzaixojv wngxjqw!
Kvif bdxvwsf X wtlv zf svtkv
Tp bdxvwsf tp X htzv qviv;
Jvgwsf X csxhl zf psvvkvp
Gnw vkvg t rxpu nc hsndo rxss X aixgj trtf
破解的算法分析
- 第一步:由仿射加密可知k必须与26互素;
- 第二步:k_1与k互为逆元,b可取任意值;
- 第三步:取不同的k和b进行遍历输出结果,观察出能够读懂的语句,则此语句对应的k和b就是正确的k和b;
- 第四步:使用网站输入对应的k和b,破解整篇文章的内容仿射加密网站。
C语言代码
C语言代码:
//判断是否互素
int isPrimeNum(int a)
{
int i=2;
for(;i<=a;i++)
{
if(0==a