问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

这段C语言是什么意思呢?

发布网友 发布时间:2022-04-30 18:31

我来回答

1个回答

热心网友 时间:2022-06-29 05:58

这是一个加密字符串的程序。

首先来分析这个程序的几个函数:

1.int *(int a ,int b);函数

    从函数名就能看出这个函数是用来计算a和b的最大公约数的。该函数计算最大公约数的方法很简单,就是穷举1到min(a,b)的数,找出最大的约数。如果楼主对求最大公约数感兴趣可以搜搜“辗转相除法”

2.int encrypt(int m,int k1,int k2);

    从函数名也能看出这个函数的用途,就是加密(encrypt)。该加密采用字符映射的方法,将m经过线性运算(a1*m+a2)的结果映射成0-26中的一个数字。%是取模运算,加密算法或HASH算法中最常用的非线性运算符,楼主感兴趣可以搜索“HASH”、“模运算”

3.main函数

    main函数的第一个for循环是初始化字符数组m和c的过程,将m和c中的内容都手动赋值为0。

    接下来是分别请求用户输入待加密字符串m和加密密钥key1和key2的语句,非常简单,不需多解释。

    在接下来的while循环语句是验证key1和key2是否满足加密要求,如果不满足则会要求用户再次输入key1和key2,直至满足要求为止。为什么要对key1和key2有要求呢?因为这个算法采用的是字符映射的方法加密,如果key1和key2都是26的倍数,那么该程序就相当于没有加密效果,举例说明,如果要加密的算法是某一个字符是w,根据加密函数可知w会被映射成下面这个东西:

    (w*key1+key2)%26 == (w*key1)%26 + key2%26  ==  w + 0  == w

所以说根本就没有加密效果。(虽然程序中未对key2进行检查,但key2的影响也是很大的)

最后一个for循环就是具体的加密过程,循环对字符串中的每一个字符进行加密,先用encrypt函数将字符串映射成0-26中的一个数字(很容易看出来这代表26个字母),然后再加上ASCII码'a'(即90),的到最后的结果。

以加密helloworld为例,密钥为123和321,结果看截图:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
表格列求和公式怎么设置 求和函数公式怎么输入 北京注册成立一个公司需要多少钱 北京公司都是什么 手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 python UnicodeDecodeError问题 be represented as是什么意思 从键盘输入一个字符 若该字符是英文字母是则输入对应的ASCII码 Origin75汉化版中汉化文件怎么和Origin75英文版的文件结合,来解决not ascii? 导入txt数据到origin画图显示not ascii,用英文版也不行,怎么办? 汉化版origin无法做图,提示 not ascii,怎么办 After Effects错误: CT generic: not ascii ( 83 :: 2 ) 我想问一下,用origin制作三元相图时总是出现not ascii是怎么回事呢? origin数据处理软件作图显示not ascii只有坐标没有图,怎么处理再拟合直线? 在origin中导入电子表格数据总是被提示not ascii,无法作图 origin绘图是弹出not ascii,怎么处理? 全混流反应器的特点是什么? 对于恒容均相反应,为什么间歇反应器和平推流反应器的设计方程是一样的 间歇式反应器,活塞流反应器和恒流搅拌反应器的异同分析 - 信息提示 间歇式搅拌釜式反应器响应曲线有什么特点? 间歇反应器物料停留时间和连续反应器物料的平均停留时间,二者有何区别? 简述间歇釜氏反应器的特点? 间歇釜反应器的特点是什么? word 勾号怎么打 C语言的问题:请问ctime()和asctime有什么区别? 16进制字符串如何转换为对应的ASCII码 怎样使用微博? 什么微博软件好用啊? 广西百色右江区营业执照年审怎么审 怎么使用新浪微博? 青花鱼养殖交流论坛登不进去了 青花鱼怎么设置只看楼主 青花鱼交友论坛是什么 青花鱼养殖交流论坛验证码错误是怎么回事 青花鱼论坛验证码错误次数过多 求长佩文学论坛的ID一个~因为不能注册了~只为看文~最好是青花鱼平民用户组哒~ 青花鱼版规几条 求一本文名,青花鱼论坛组看的 牛肉焖萝卜怎么焖 伤心你是不是不爱我了表情包 抖音里封面和关键字带李子柒会被限流吗 易烊千玺被质疑年龄造假,你对此有什么看法? 如何在自己家中做拉面?谁有教学视频? 微信通过扫一扫添加的好友怎么查看对方的?