C 语言维吉尼亚密码程序

2025 年 1 月 8 日 | 3 分钟阅读

在本文中,我们将讨论C语言中的维吉尼亚密码程序

引言

文本可以使用维吉尼亚密码算法进行加密解密凯撒密码维吉尼亚密码相关。它是一种用于加密字母文本的技术。它以关键词的字母结构为基础。这种替换密码使用多字母字符。这种算法易于理解和应用。该算法最初由Giovan Battista Bellaso1553年提出。

算法

1. 输入关键词明文

2. 将关键词重复,使其长度与明文相同。

3. 在加密数据时,对重复的关键词和明文执行模加法

Ci = Pi + Ki(mod m)

其中Ci密文

Pi明文

Ki是重复的关键词'm'字母表的长度。

4. 解密:密文中对关键词进行模减法。

Pi = Ci - Ki

(mod m)

5. 同时显示加密解密后的消息。

示例

现在,让我们通过一个程序来理解如何在C语言中使用维吉尼亚密码方法

工作机制

  • 用户会看到一个菜单,其中包含加密、解密退出程序的选项。
  • 如果用户选择“加密”:

程序会要求用户输入明文消息密钥

  • 之后,维吉尼亚加密算法通过迭代遍历明文和密钥中的每个字符来构造加密字符
  • 使用编码字符打印密文。
  • 当用户选择“解密”时:

软件会要求用户输入密钥和密文

  • 为了生成解密字符维吉尼亚解密公式会迭代应用于密文和密钥中的每个字符。
  • 打印解密字符的原始明文。
  • 因为程序会一直循环直到用户选择“退出”选项,所以用户可以反复执行加密解密过程

输出

一些预期输出,例如

1. Encrypt
2. Decrypt
3. Exit

Enter your option: 1

Enter the plaintext (up to 128 characters): Hello World
Enter the key (up to 16 characters): KEY

Cipher Text: RIJVS UYVJN

1. Encrypt
2. Decrypt
3. Exit

Enter your option: 2

Enter the ciphertext: RIJVS UYVJN
Enter the key: KEY

Deciphered Text: HELLO WORLD

1. Encrypt
2. Decrypt
3. Exit

Enter your option: 3