zoukankan      html  css  js  c++  java
  • 古典密码之乘法密码

    实验目的

    熟练掌握多表古典密码简单乘法加密算法原理及实现和应用。

    实验原理

    将文明内容按照N个字符长度分成不同的分组,在各分组使用不同的变换规则,这种方式叫做多表替代密码,也是凯撒密码的扩展版本,就是在凯撒密码的基础之上将变换方式改变一下。

    实验内容

    1、根据多表(双表)古典密码的乘法加密运算的算法,进行程序设计,写出加密运算的代码;

    2、输入模q(根据明文确定)及加密密钥k1,k2对下列明文进行加法加密:

    A graph is finite if both its vertex set and edge set are finite. In this book we study only finite graphs, and so the term ‘graph’ always means ‘finite graph’.

    实验环境描述

    Windows 7, VC6.0

    实验步骤

    学生登录实验场景的操作

    1、 学生单击 “开始实验”进入实验场景,进入目标主机。

    2.找到桌面上的Microsoft Visual C++ 6.0,双击打开。

    图片描述

    3.新建一个C++ Source File,文件名为chengfa。

    图片描述

    4.写代码。 在工作区输入代码,如图所示。

    图片描述

    代码如下:

    #include

    #include

    #include

    #include

    main()

    {

    char M[200];

    char C[200];

    int K[200],q=26,i,j;

    srand( (unsigned)time( NULL ) );

    for(j=0;j<=200;j++)

    {

    K[j]=rand()%50;

    }

    printf("please input chars:n");

    gets(M);

    for(i=0;M[i]!='0';i++)

    {

    if(M[i]>='a'&&M[i]<='z')

    {

    C[i]=((M[i]-'a'+1)*K[i])%q+'a';

    }

    else if(M[i]>='A'&&M[i]<='Z')

    {

    C[i]=((M[i]-'A'+1)*K[i])%q+'A';

    }

    else

    C[i]=M[i];

    }

    C[i]='0';

    printf("The result is:n%sn",C);

    getch();

    return 0; }

    5.编译、构建与运行。

    经过编译与构建,发现这个程序是正确的,没有出现错误,如图所示。

    图片描述

    6.点击F5运行,会出现如图所示对话框,要求用户输入明文。

    图片描述

    7.那么只要输入明文,就会得到经过乘法加密算法加密之后的密文了。

    图片描述

    8.实验结束,关闭实验场景。

  • 相关阅读:
    Java程序员:一整个项目的具体开发流程介绍
    JAVA常用API整理
    Java开发人员必知必会的20种常用类库和API
    SpringBoot_web开发【实验】-员工列表-链接高亮&列表完成
    luogu P1754 球迷购票问题 |动态规划
    luogu P1566 加等式 |背包问题方案数
    luogu P1564 膜拜 |动态规划
    luogu P1509 找啊找啊找GF |背包
    P1474 货币系统 Money Systems |背包方案数
    cloudera安装报错 socket.gaierror: [Errno -2] Name or service not known
  • 原文地址:https://www.cnblogs.com/lzkalislw/p/13667903.html
Copyright © 2011-2022 走看看