字符串加解密

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串加解密相关的知识,希望对你有一定的参考价值。

题目描述

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

2加密方法为:

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

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

其他字符不做变化。

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

#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_
/*============================= 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;
}


以上是关于字符串加解密的主要内容,如果未能解决你的问题,请参考以下文章

基础分享C#封装的几个加解密类

iOS RSA加解密签名和验证

iOS RSA加解密签名和验证

字符串加解密

JavaScript Base64加解密

android中使用jni对字符串加解密实现分析