实验六 文本串的加密解密

简介: 实验六 文本串的加密解密

实验六 文本串的加密解密

一个文本串可用事先给定的字母映射表进行加密。例如,假设字母映射表为:
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 (初始串)
n g z q t c o b m u h e l k p d a w x f y i v r s j (映射串)
则字符串“encrypt”被加密为“tkzwsdf”
要求:设计程序将输入的文本串进行加密后输出,然后进行解密并输出。

SqString.h

#define MAX_SIZE 100
typedef struct
{
    char data[MAX_SIZE]; // 串中字符
    int length; // 串长
}SqString; // 声明顺序串类型
void strAssign(SqString &s, char cstr[])//生成串 
{
    int i;
    for(i = 0; cstr[i] != '\0'; i++)
        s.data[i] = cstr[i];
    s.length = i;
}
void DestroyStr(SqString &s)//销毁串 
{
  
}
void DispStr(SqString s)//输出串 
{
    int i;
    if(s.length > 0)
    {
        for(i = 0; i < s.length; i++)
            printf("%c", s.data[i]);
        printf("\n");
    }
}
SqString EnCrypt(SqString &p,SqString A,SqString B)//加密 
{
  for(int i=0;i<p.length;i++)
  {
    int j=0;
    while(j<A.length)
    {
      if(p.data[i]==A.data[j])
      {
        p.data[i]=B.data[j];
        break;
      }
      else
      j++;
    }
  }
    return p;
}
SqString UnEnCrypt(SqString &p,SqString A,SqString B)//解密 
{
  for(int i=0;i<p.length;i++)
  {
    int j=0;
    while(j<B.length)
    {
      if(p.data[i]==B.data[j])
      {
        p.data[i]=A.data[j];
        break;
      }
      else
      j++;
    }
  }
    return p;
}

main.cpp

#include <iostream>
#include "SqString.h"
int main(int argc, char** argv) {
  SqString p,A,B;
  strAssign(A, "abcdefghijklmnopqrstuvwxyz"); // 建立A串
  strAssign(B, "ngzqtcobmuhelkpdawxfyivrsj");// 建立B串(字母映射表)
  char str[MAX_SIZE];
  printf("请输入你需要加密的字符:") ;
  gets(str);
  strAssign(p,str);
  printf("\n加密之后:");
  EnCrypt(p,A,B);
  DispStr(p);
  printf("\n解密之后:");
  UnEnCrypt(p,A,B);
  DispStr(p);
    DestroyStr(p);
  DestroyStr(A);
  DestroyStr(B); 
  return 0;
}

运行结构

相关文章
|
11月前
|
算法 网络安全 数据安全/隐私保护
网络安全实验六 DES对称加密算法详解
网络安全实验六 DES对称加密算法详解
390 0
|
Java 数据安全/隐私保护 Windows
【Java实验五】字符串加密、模拟用户登录、生成验证码、春节倒计时等
1、实验题目:字符串加密 键盘输入一个原始字符串作为明文,然后使用加密方法加密,再对加密字符串进行解密。样例如下图,加密方法自定,完成其功能并测试。
120 0
|
安全 算法 数据安全/隐私保护
|
2天前
|
存储 SQL 安全
网络安全与信息安全:漏洞、加密与意识的三重奏
本文旨在探讨网络安全与信息安全领域的三个核心要素:网络漏洞、加密技术和安全意识。通过分析这些要素的重要性、当前面临的挑战以及应对策略,文章意在为读者提供深入理解并促进对网络安全和信息安全重要性的认识。我们将看到,尽管技术不断进步,但人为因素仍然是安全体系中最薄弱的环节。
|
3天前
|
SQL 安全 算法
网络安全与信息安全:漏洞、加密和安全意识的深度解析
在数字化时代,网络安全与信息安全已成为全球焦点。本文深入探讨网络安全漏洞的种类和防护措施,介绍加密技术在数据保护中的关键作用,强调安全意识在日常生活和工作中的重要性。通过案例分析和技术解读,我们揭示了保持网络安全的最佳实践和未来趋势。
|
8天前
|
SQL 安全 算法
网络安全的盾牌:加密技术与安全意识的双重保障
【6月更文挑战第6天】在数字化时代,网络安全已成为保护个人隐私和企业数据的关键。本文深入探讨了网络安全的两个重要支柱:加密技术和安全意识。我们将分析常见的网络安全漏洞,揭示加密技术如何为数据提供坚固的保护屏障,并强调提升个人和组织的安全意识对于防范网络攻击的重要性。通过结合技术手段和人为因素,我们可以构建一个更加安全的网络环境。
|
8天前
|
SQL 安全 网络安全
数字世界的守护者:网络安全漏洞、加密技术与安全意识的探索
在数字化浪潮中,网络安全成为维护信息完整性和隐私保护的关键防线。本文深入探讨了网络安全的核心问题——包括常见的网络漏洞、先进的加密技术以及公众的安全意识,旨在揭示这些因素如何共同塑造我们的数字环境。通过分析具体的安全事件和防御策略,文章提供了对现代网络威胁的深刻见解,并强调了个人和企业为抵御网络攻击所需采取的预防措施。
|
1天前
|
SQL 安全 算法
网络安全与信息安全:从漏洞到加密技术的全方位解析
本文将详细探讨网络安全与信息安全的各个方面,包括常见的安全漏洞、先进的加密技术以及提升安全意识的重要性。通过具体案例和技术细节,帮助读者更好地理解如何保护个人和企业的信息安全。
|
1天前
|
SQL 存储 安全
网络安全与信息安全:从漏洞到加密技术的深度探讨
在当今数字化社会,网络安全与信息安全已成为企业和个人必须关注的核心问题。本文旨在通过深入探讨网络安全漏洞、现代加密技术及提升安全意识的方法,为读者提供一份全面的知识分享。
|
2天前
|
安全 网络安全 数据库
网络安全与信息安全:漏洞、加密与意识的交织
【6月更文挑战第13天】在数字时代的浪潮中,网络安全与信息安全成为了我们生活中不可或缺的一部分。本文将深入探讨网络安全的漏洞、加密技术以及安全意识的重要性,帮助读者理解这些概念并提高他们的网络安全防护能力。
8 2