C#加密解密字符串
试定义一个接口IAuthenticate来声明加密、解密方法,然后定义一个加密解密类Authentication实现上述接口,最后定义一个类StringEncrypt,该...
试定义一个接口IAuthenticate来声明加密、解密方法,然后定义一个加密解密类Authentication实现上述接口,最后定义一个类StringEncrypt,该类继承自类Authentication,能加密或解密输入的字符串。(效果图如下,很急,在线等!)
展开
2个回答
2017-05-24
展开全部
namespace ConsoleDEMO
{
public interface IAuthenticate
{
string encode(string text);
string decode(string text);
}
class Program
{
static void Main(string[] args)
{
bool a= true;
StringEncrypt se = new StringEncrypt();
string text;
while(a)
{
Console.Write("请输入待加密字符串:");
text = Console.ReadLine();
Console.WriteLine();
text = se.getEncode(text);
Console.WriteLine("加密后的字符串:" + text);
Console.WriteLine();
Console.Write("请输入待解密字符串:");
text = Console.ReadLine();
Console.WriteLine();
text = se.getDecode(text);
Console.WriteLine("解密后的字符串:" + text);
Console.WriteLine();
Console.Write("按任意键继续..");
Console.ReadKey();
Console.WriteLine();
}
}
}
}
namespace ConsoleDEMO
{
class Authentication : IAuthenticate
{
//加密
public string encode(string text)
{
char[] words = text.ToCharArray();
for (int i = 0; i < words.Length; i++)
{
int a = (int)words[i];
if (a >= 48 && a <= 57)//数字0-9
{
a = a + 3;
if (a > 57)
a = a - 10;
}
if (a >= 65 && a <= 90)//字母A-Z
{
a = a + 3;
if (a > 90)
a = a - 26;
}
if (a >= 97 && a <= 122)//字母a-z
{
a = a + 3;
if (a > 122)
a = a - 26;
}
words[i] = (char)(a);
}
return new string(words);
}
//解密
public string decode(string text)
{
char[] words = text.ToCharArray();
for (int i = 0; i < words.Length; i++)
{
int a = (int)words[i];
if (a >= 48 && a <= 57)//数字0-9
{
a = a - 3;
if (a < 48)
a = a + 10;
}
if (a >= 65 && a <= 90)//字母A-Z
{
a = a - 3;
if (a < 65)
a = a + 26;
}
if (a >= 97 && a <= 122)//字母a-z
{
a = a - 3;
if (a < 97)
a = a + 26;
}
words[i] = (char)(a);
}
return new string(words);
}
}
}
namespace ConsoleDEMO
{
class StringEncrypt : Authentication
{
public StringEncrypt()
{
}
public string getDecode(string text)
{
return decode(text);
}
public string getEncode(string text)
{
return encode(text);
}
}
}
展开全部
这个加密算法是很简单的,遍历输入字符串的每一个字符,如果是字母,就将起对应的值(Ascii码,是一种int型的数值)加3,如果末尾的加3超过了字母‘Z’,就跳到前面的‘A’去继续加。解密过程反之。
你可以直接通过:" (int)'A' "这种形式将字符强制转换为数值,加3后,再(char)强制转回去。
字母与数值对应关系:A->65;Z->90;a->97;z->122
你可以直接通过:" (int)'A' "这种形式将字符强制转换为数值,加3后,再(char)强制转回去。
字母与数值对应关系:A->65;Z->90;a->97;z->122
追问
我要具体代码……,楼上的似乎有点不对劲……
追答
代码见另一网页回答。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询