单表代换密码(凯撒密码)

  • 单表代换密码概述
    • 对所有的明文字母都用一个固定的代换进行加密 ,因而称为
    • 单表代换密码。加密过程中是从明文字母表到密文字母表的一一映射。例:
    • 恺撒(Caesar)密码。
    • 缺点:不能抗击字母频度分析,容易被破译
    • 单表密码的弱点:明文和密文字母之间的一一代替关系。这使得明文中的一些固有特性和规律(比如语言的各种统计特性)必然反映到密文中去。
  • 凯撒密码加解密过程(C实现)

    • #include 
      #include "string.h"
      using namespace std;
      
      char* CaesarEncrypt(char* plaintext);
      char* CaesarDecrypt(char* ciphertext);
      char a[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
      char b[26]={'X','N','Y','A','H','P','O','G','Z','Q','W','B','T','S','F','L','R','C','V','M','U','E','K','J','D','I'};
      
      
      int main()
      {
      	char plaintext[105];
      	printf("please input a string:\n");
      	gets(plaintext);
      	char *ciphertext1=CaesarEncrypt(plaintext);
      	CaesarDecrypt(ciphertext1);
      	getchar();
      	getchar();
      	return 0;
      }
      
      
      char* CaesarEncrypt(char plaintext[]){
      	char ciphertext[105];
      	int i=0;
      
      	int sizeofplaintext=strlen(plaintext);
      	for(i=0;i
  • 结果演示
    • 结果演示

  • 凯撒密码密码表
    • 单表代换密码(凯撒密码)_第1张图片



你可能感兴趣的:(密码学,C++)