字符串加解密

简介:

题目描述

1、对输入的字符串进行加解密,并输出。

2加密方法为:

当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a

当内容是数字时则把该数字加1,如0替换11替换29替换0

其他字符不做变化。

3、解密方法为加密的逆过程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#ifndef _ENCRYPTUNENCRYPT_
#define _ENCRYPTUNENCRYPT_
/*================================ Macros ===================================*/
 
 
#define FALSE 0
#define TURE 1
 
 
/*============================= Include Function ===============================*/
 
int  Encrypt ( char  aucPassword[],  char  aucResult[]);
int  unEncrypt ( char  result[],  char  password[]);
 
#endif //_ENCRYPTUNENCRYPT_
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/*============================= Include Files ===============================*/
#include"encryptUnencrypt.h"
#include<string.h>
 
/*****************************************************************************/
/*函数名:oneCharEncrypt*/
/*函数入口参数:要加密的数组*/
/*函数返回值:标识函数是否成功完成*/
/*函数功能:实现对一个字符串的加密*/
/*****************************************************************************/
static  char  oneCharEncrypt( char  ch)
{
     if ((ch >=  'a' ) && (ch <= 'z' ))
     {
         ch -= 32;
         if ( 'Z'  == ch)
         {
             ch =  'a' ;
         }
         else
         {
             ch += 1;
         }
     }
     else  if ((ch >=  'A' ) && (ch <=  'Z' ))
     {
         ch += 32;
         if ( 'z'  == ch)
         {
             ch =  'a' ;
         }
         else
         {
             ch += 1;
         }
     }
     else  if ((ch >=  '0' ) && (ch <=  '9' ))
     {
         if ( '9'  == ch)
         {
             ch =  '0' ;
         }
         else
         {
             ch += 1;
         }
         
     }
     else
     {
         return  ch;
     }
     return  ch;
}
/*****************************************************************************/
/*函数名:Encrypt*/
/*函数入口参数:加密和未加密两个数组*/
/*函数返回值:标识函数是否成功完成*/
/*函数功能:实现对字符串的加密*/
/*****************************************************************************/
int  Encrypt( char  aucPassword[],  char  aucResult[])
{
     int  index = 0;
     //求取要加密数组长度
     int  sizeArr =  strlen (aucPassword);
     //依次加密
     for (;index < sizeArr;index++)
     {
         aucResult[index] = oneCharEncrypt(aucPassword[index]);  
     }
     return  TURE;
}
/*****************************************************************************/
/*函数名:oneCharUnencrypt*/
/*函数入口参数:要解密的数组*/
/*函数返回值:标识函数是否成功完成*/
/*函数功能:实现对一个字符串的解密*/
/*****************************************************************************/
static  char  oneCharUnencrypt( char  ch)
{
     if ((ch >=  'a' ) && (ch <= 'z' ))
     {
         ch -= 33;
     }
     else  if ((ch >=  'A' ) && (ch <=  'Z' ))
     {
         ch += 31;
     }
     else  if ((ch >=  '0' ) && (ch <=  '9' ))
     {
         if ( '0'  == ch)
         {
             ch =  '9' ;
         }
         else
         {
             ch -= 1;
         }  
     }
     else
     {
         return  ch;
     }
     return  ch;
}
/*****************************************************************************/
/*函数名:unEncrypt*/
/*函数入口参数:加密和未加密两个数组*/
/*函数返回值:标识函数是否成功完成*/
/*函数功能:实现对字符串的解密*/
/*****************************************************************************/
int  unEncrypt( char  result[],  char  password[])
{
     int  index = 0;
     //解密字符串的长度
     int  sizeArr =  strlen (password);
     //依次解密
     for (;index < sizeArr;index++)
     {
         result[index] = oneCharUnencrypt(password[index]);
     }
     return  TURE;
}



本文转自 8yi少女的夢 51CTO博客,原文链接:http://blog.51cto.com/zhaoxiaohu/1751676,如需转载请自行联系原作者
相关文章
|
存储 Go
Go语言接口声明规范和最佳实践
Go语言接口声明规范和最佳实践
459 0
|
前端开发
vue3 中wangEditor富文本编辑器上传图片功能
vue3 中wangEditor富文本编辑器上传图片功能
1491 0
|
机器学习/深度学习 算法 数据可视化
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
1034 0
|
Web App开发 前端开发 iOS开发
CSS嵌套:告别选择器地狱的新魔法!
CSS嵌套:告别选择器地狱的新魔法!
|
11月前
|
JSON 数据可视化 API
淘宝/天猫:利用销售数据API生成区域热力图,优化仓储布局
本文详解如何利用淘宝/天猫销售数据API生成区域热力图,结合核密度估计与线性规划,科学优化仓储布局。通过数据驱动降低物流成本15%-20%,提升配送效率,助力电商高效运营。(238字)
|
C# 图形学 开发者
【Unity3D实例-功能-镜头】俯视角
本文介绍了Unity中常用的俯视角镜头实现方法,涵盖模型添加、角色Tag设置、摄像机脚本编写及测试运行,帮助开发者快速掌握俯视角在策略与模拟类游戏中的应用技巧。
652 0
|
存储 自然语言处理 数据库
万字长文讲透 RAG在实际落地场景中的优化
本文主要围绕DB-GPT应用开发框架如何在实际落地场景做RAG优化。
万字长文讲透 RAG在实际落地场景中的优化
|
缓存 人工智能 数据中心
全球光通信顶会OFC2023 阿里云多位专家分享数据中心光网络创新
全球光通信顶会OFC2023 阿里云多位专家分享数据中心光网络创新
全球光通信顶会OFC2023 阿里云多位专家分享数据中心光网络创新
|
敏捷开发 开发者
Code Review 全面审查清单
Code Review 全面审查清单
1659 0
Code Review 全面审查清单
|
关系型数据库 MySQL 数据安全/隐私保护