实验六 文本串的加密解密

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

实验六 文本串的加密解密

一个文本串可用事先给定的字母映射表进行加密。例如,假设字母映射表为:
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;
}

运行结构

相关文章
|
4天前
|
算法 vr&ar 数据安全/隐私保护
$文本串加密和解密程序
$文本串加密和解密程序
5 0
|
11月前
|
算法 网络安全 数据安全/隐私保护
网络安全实验六 DES对称加密算法详解
网络安全实验六 DES对称加密算法详解
406 0
|
Java 数据安全/隐私保护 Windows
【Java实验五】字符串加密、模拟用户登录、生成验证码、春节倒计时等
1、实验题目:字符串加密 键盘输入一个原始字符串作为明文,然后使用加密方法加密,再对加密字符串进行解密。样例如下图,加密方法自定,完成其功能并测试。
120 0
|
安全 算法 数据安全/隐私保护
|
3天前
|
存储 SQL 安全
网络安全的盾牌:漏洞、加密与意识的综合防御
【6月更文挑战第19天】在数字信息的海洋中,网络安全是守护数据宝藏的坚固盾牌。本文将探讨网络安全的三大支柱:网络漏洞、加密技术以及安全意识,揭示它们如何共同构筑起一道防线,保护我们的信息安全不受侵犯。我们将深入分析常见的网络漏洞,探索现代加密技术的奥秘,并强调培养良好的安全意识的重要性。这不仅是技术人员的战斗,每个人都是这场保卫战的战士。让我们揭开网络安全的面纱,一探究竟。
|
2天前
|
安全 算法 网络安全
网络安全的护城河: 漏洞管理与加密技术的双剑合璧
【6月更文挑战第20天】在数字世界的战场上,网络安全是防御的第一道防线。本文将深入探讨网络安全的两个关键组成部分——安全漏洞管理和加密技术。我们将从实战角度出发,分析常见的网络攻击手段和漏洞类型,并讨论如何通过有效的漏洞管理策略来减少风险。同时,文章还将介绍加密技术的原理,以及它在保护数据隐私和完整性方面的作用。最后,我们将强调培养良好的安全意识对于防范网络威胁的重要性,并提供一些实用的建议。
|
2天前
|
存储 SQL 安全
网络安全与信息安全:漏洞、加密与意识的三重奏
【6月更文挑战第20天】在数字化时代的交响乐中,网络安全和信息安全是维护数据和谐的基石。本文将深入探讨网络安全的常见漏洞、加密技术的重要性以及提升安全意识的必要性。我们将从网络威胁的源头出发,分析如何通过技术和教育手段构建坚固的防线,以保护个人和组织的数据资产。文章旨在为读者提供实用的知识和策略,以便在这个充满挑战的数字世界中保持警惕和安全。
17 2
|
2天前
|
SQL 安全 算法
网络安全与信息安全:漏洞、加密技术与安全意识的深度剖析
【6月更文挑战第19天】在数字化时代的浪潮中,网络安全与信息安全的重要性日益凸显。本文深入探讨了网络安全漏洞的成因与影响,分析了加密技术在保护数据隐私和完整性方面的关键作用,并强调了提升个人及组织的安全意识的必要性。文章旨在通过技术性分析,为读者提供防范网络威胁的策略和方法,以期构建更为坚固的网络安全防线。
|
1天前
|
SQL 安全 算法
网络安全与信息安全:从漏洞到加密技术的全面解析
在这个数字化高速发展的时代,网络和信息安全成为了每个组织和个人无法忽视的重要问题。本文将深入探讨网络安全漏洞、加密技术的重要性和实施方式,以及提升安全意识的必要性。通过对这些方面的详细介绍,我们希望帮助读者更好地理解并应对现代网络安全挑战。
19 1