代码与代码
分析
主要函数的接口、调用与被调用函数、所实现的功能和实现的主要思路:
int main(char ch) :
Function: 为用户提供基本操作,调用加密解密函数。
Calls: 调用了加密函数Encrypt(),解密函数Decrypt()和程序说明函数Explain()。
Called By: 未被其它函数调用。
Input(type) 字符型(char)。
Output(type): 无,只是输出“”中的字符串。
Return(type): 整型
Others: 无
Bug: 测试尚未发现
void Encrypt(char plaintext[],char key[])
Function: 实现的功能是:接收明文和密钥的输入,并使用维吉尼亚密码进行加密,然
后输出密文。
实现的主要思路:首先用gets()函数接收明文和密钥的输入,然后对密钥进
行检查,若出现除小写字母外的其它字符则返回重新输入;加密的核心算法是(以
明 文 小 写 字 母 为 例 ) : c i p h e r t e x t [ i ] = ( ( p l a i n t e x t [ i ] - ' a ' ) + ( k e y [ i % k _ l e n ] - ' a ' ) )
%26+'A',利
用对数组的下标操作一次取出明文字母和密钥字母,然后明文字母和密钥字母都减
去'a',得到明文字母和密钥字母在字母表中的序号,二者相加再模26后即可得到
密文字母在字母表中的序号,最后再加上'A'即可得到对应的密文字母。
key[i%k_len]包含了对密钥的处理,若明文字母长度比密钥长度长时,用公式
i%k_len可以使plaintext[i]与密钥字母(重复多次)一一对应。
Calls: 未调用其它函数。
Called By: 被主函数main()调用。
评论13
最新资源