凯撒密码,要求C语言编写,求救!(实现凯撒密码功能源代码)

2023-03-06 10:28:31 密码用途 思思

写的一般般,希望对LZ有所帮助

#include stdio.h

#include string.h

int main()

{

char str[201];//存放字符

char tmp[11];//临时变量

int i;//循环变量

int len;//存放消息长度

scanf("%s",tmp);//这里输入START,开始

getchar();//接收回车

while(strcmp(tmp,"ENDOFINPUT"))

{

gets(str);//由于输入中有空格,所以用gets输入

getchar();//接收回车

len = strlen(str);

for(i=0;ilen;i++)

{

if(str[i]='A'str[i]='Z')

{

str[i] -= 5 ;

if(str[i] 65)

{

str[i] +=26;

}

}

}

scanf("%s",tmp);//这里输入END,结束

printf("%s\n",str);//处理完就直接输出结果

scanf("%s",tmp);//输入START表示继续,输入ENDOFINPUT则表示最后一个数据集

getchar();//接收回车

}

return 0;

}

如何用python编写凯撒密码 ?

凯撒密码是对字母表整体进行偏移的一种变换加密。因此,建立一个字母表,对明文中每个字母,在这个字母表中偏移固定的长度即可得到对应的密文字母。

最基本的实现如下:

def caesarcipher(s: str,rot: int=3) -str:

    _ = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

    encode = ''

    i = 0

    for c in s:

        try:

            encode += _[(_.index(c.upper()) + rot) % len(_)]

        except (Exception,) as e:

            encode += c

    return encode

print(caesarcipher('hellow'))

print(caesarcipher('KHOORZ', -3))

如果要求解密后保持大小写,那么,字母表_还需要包含所有小写字母并且index时不对c做upper处理.

同样的,也可以在字母表中追加数字,各种符号,空格等.

求python中的恺撒密码的加密,解密,以及破解的程序

凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。由此可见,位数就是凯撒密码加密和解密的密钥。

如下代码是以偏移量为13展开计算的。123

源代码如下:

sr1="abcdefghijklmnopqrstuvwxyz"sr2=sr1.upper()

sr=sr1+sr1+sr2+sr2

st="The Zen of Python"sResult=""for j in st: if j==" ":

sResult = sResult +" "

continue

i=sr.find(j) if(i-1):

sResult=sResult+sr[i+13]print sResult12345678910111213

运行结果为:

Gur Mra bs Clguba

凯撒密码用VB如何编写程序

这个很简单嘛,用ASC 和 CHR 转换一下嘛

打开Vb,添加2个label控件,2个text控件 1个command按钮

代码如下:

Private Function f(ByVal a As String, k As Integer, n As Integer) As String

If ((Asc(a) = 65 And Asc(a) = 97) Or (Asc(a) = 97 And Asc(a) = 122)) And Len(a) = 1 Then '判断是否为一个字母

'利用公式计算

If Asc(a) = 65 And Asc(a) = 97 Then f = Chr((Asc(a) - 64 + k) Mod n + 64) '当为大写的时候

If Asc(a) = 97 And Asc(a) = 122 Then f = Chr((Asc(a) - 96 + k) Mod n + 96) '当为小写的时候

Else

f = "error" '若不满足要求,则返回错误

End If

End Function

Private Sub Command1_Click()

Dim strold As String

Dim strnew As String

Dim k As Integer

Dim n As Integer

Dim i As Long

Dim tmp As String

k = 3

n = 26

strold = Text1.Text '要加密的字符串

For i = 1 To Len(strold)

tmp = Mid(strold, i, 1)

tmp = f(tmp, k, n)

If tmp "error" Then

strnew = strnew + tmp

Else

MsgBox "字符串中含有非法字符"

Exit Sub

End If

Next i

Text2.Text = strnew

End Sub

Private Sub Form_Load()

Text1.Text = "PROGRAM"

Text2.Text = ""

Command1.Caption = "加密"

Label1.Caption = "源字符串:"

Label2.Caption = "加密字符串:"

End Sub