实验六 文本串的加密解密

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 实验六 文本串的加密解密

实验六 文本串的加密解密

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

运行结构

相关文章
|
6月前
|
算法 vr&ar 数据安全/隐私保护
$文本串加密和解密程序
$文本串加密和解密程序
|
算法 网络安全 数据安全/隐私保护
网络安全实验六 DES对称加密算法详解
网络安全实验六 DES对称加密算法详解
546 0
|
Java 数据安全/隐私保护 Windows
【Java实验五】字符串加密、模拟用户登录、生成验证码、春节倒计时等
1、实验题目:字符串加密 键盘输入一个原始字符串作为明文,然后使用加密方法加密,再对加密字符串进行解密。样例如下图,加密方法自定,完成其功能并测试。
162 0
|
安全 算法 数据安全/隐私保护
|
12天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
13天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
36 10
|
14天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
43 10
|
15天前
|
SQL 安全 网络安全
网络安全漏洞、加密技术与安全意识的知识分享
随着互联网的普及,网络安全问题日益严重。本文将介绍网络安全漏洞的概念、类型和防范措施,以及加密技术的原理和应用。同时,强调提高个人和企业的安全意识对于防范网络攻击的重要性。
|
14天前
|
存储 安全 网络安全
网络安全的盾与剑:漏洞防御与加密技术的实战应用
在数字化浪潮中,网络安全成为保护信息资产的重中之重。本文将深入探讨网络安全的两个关键领域——安全漏洞的防御策略和加密技术的应用,通过具体案例分析常见的安全威胁,并提供实用的防护措施。同时,我们将展示如何利用Python编程语言实现简单的加密算法,增强读者的安全意识和技术能力。文章旨在为非专业读者提供一扇了解网络安全复杂世界的窗口,以及为专业人士提供可立即投入使用的技术参考。