说明: 加法密码和乘法密码结合就构成仿射密码,仿射密码的加密和解密算法是:C=Ek(m)=(k1m+k2) mod n ;M= Dk(c)=k3(c- k2) mod n (其中(k3 ×k1)mod26 = 1); 仿射密码具有可逆性的条件是:gcd(k1, n)=1. 当k1=1时,仿射密码变为 ...
分类:
其他好文 时间:
2018-03-26 13:52:03
阅读次数:
378
【题目描述】:密码 古典密码学有两种密码,仿射和换位,给定一段明文,一段密文,看密文能否由这段明文,是否可能通过仿射和换位得到。 【算法分析】:这道题目的关键是读题。因为接触过密码学,所以容易理解。 仿射密码:M=(m+a)%26,注意:对于相同的字母,仿射到同一个字母 换位密码:就是把所有的字母重 ...
分类:
其他好文 时间:
2017-02-25 23:59:40
阅读次数:
325
如果明文中不同的位置的同一明文字母在密文中对应的密文字母相同,则称其为单表密码体制。 代表性的单表密码: 1.移位或加法密码 2.乘数或乘法密码 3.仿射密码 4.密钥短语密码 下面分别举一个例子: 1.加法密码算法: P=C=K=Zm (Zm∈{0,1,...,m-1}) Ek(x)=x+k(mo ...
分类:
其他好文 时间:
2016-05-19 01:27:20
阅读次数:
462
使用c++中string类,相比于使用数组,没有了数组长度的限制,而且操作跟加的方便
#include<iostream>
#include<string>
usingnamespacestd;
stringjiami(stringstr,intk,intb);
stringjiemi(stringpass,intk,intb);
intcanshu(intk,intb);
intmain()
{
stringstr;/..
分类:
编程语言 时间:
2016-03-12 23:08:58
阅读次数:
186
#include<iostream>
#include<string.h>
usingnamespacestd;
intmain()
{
voidencrytion_decrypt(charinput[],intlen);
charinput[10];
cout<<"Pleaseinputpassword:";
cin>>input;
intlen;
len=strlen(input);
cout<<"\n"<<"passwordis:"..
分类:
其他好文 时间:
2016-03-06 17:43:15
阅读次数:
137
地址: http://acm.nyist.net/JudgeOnline/problem.php?pid=770
分类:
其他好文 时间:
2015-07-03 21:50:12
阅读次数:
137
#include#include#include#includeusing namespace std;class PWoper{ string inpatch; string outpatch;public: PWoper(string in, string out) { ...
分类:
其他好文 时间:
2015-01-05 14:30:36
阅读次数:
204