怎样用python中的字典编写对凯撒密码的加密和解密的程序?不用字典呢?

Python017

怎样用python中的字典编写对凯撒密码的加密和解密的程序?不用字典呢?,第1张

//1. Math.ceil()用作向上取整。

//2. Math.floor()用作向下取整。

alert(Math.ceil(10/3))//4

alert(Math.floor(10/3))//3

alert(Math.round(10/3))//3

《Python密码学编程》(Al Sweigart)电子书网盘下载免费在线阅读

链接:

提取码:bcw1

书名:Python密码学编程

作者:Al Sweigart

译者:李永伦

豆瓣评分:8.4

出版社:人民邮电出版社

出版年份:2016-8-1

页数:324

内容简介:

本书是学习用Python编程实现加密算法的初学者指南。本书采用的示例源代码,是几个加密算法及其破解程序,包括凯撒密码、换位加密法、乘数加密法、仿射加密法、简单代替加密法、维吉尼亚加密法等,以及这些加密法的破解程序。本书的后一章还介绍了现代RSA加密法和公钥加密法。

本书适合Python初学者和密码学的初学者,也适合信息安全从业人员。

作者简介:

Al Sweigart是加利福尼亚州旧金山的一名软件开

发者。他很喜欢骑自行车、当志愿者、泡咖啡吧以

及开发有用的软件。他编写了《Python游戏编程

快速上手》《Python和Pygame游戏开发指南》

《Python密码学编程》《Python编程快速上手——让繁琐工作自

动化》等图书,深受读者欢迎。他生于德克萨斯的休斯顿。他在德

克萨斯大学Austin分校读完了计算机科学学位。

/*

同学,ACM题目得自己做啊.

这种绝对属于简单题啊.

同学,加油啊.

*/

#include<stdio.h>

#include<ctype.h>

#define maxlen 100

char *KaisaEncode(char *str,int key)

{//加密

int i

int ch

for(i=0str[i]!='\0'i++)

{

ch=str[i]

if(isupper(ch))

ch=(ch-'A'+key+26)%26+'A'

else if(islower(ch))

ch=(ch-'a'+key+26)%26+'a'

str[i]=ch

}

return str

}

int main(void)

{

int testCase

int key

char s[maxlen]

scanf("%d",&testCase)

for(testCase>0testCase--)

{

scanf("%d%s",&key,s)

KaisaEncode(s,key)

printf("%s\n",s)

}

return 0

}