//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
}