C#中对某一字符串加密

比如要将一个字母和数字组成的字符串加密为一段乱码,并且还要将这段乱码解密,该怎么做?求高人给个思路。... 比如要将一个字母和数字组成的字符串加密为一段乱码,并且还要将这段乱码解密,该怎么做?求高人给个思路。 展开
 我来答
百度网友0f3f080f4
2010-07-14 · TA获得超过777个赞
知道小有建树答主
回答量:1055
采纳率:0%
帮助的人:865万
展开全部
using System;
using System.Collections.Generic;
using System.Text;

using System.IO;
using System.Security.Cryptography;

namespace WindowsApplication1
{
class DESCrypt
{
private static string key = "123456789";

/**//// <summary>
/// 对称加密解密的密钥
/// </summary>
public static string Key
{
get
{
return key;
}
set
{
key = value;
}
}

/**//// <summary>
/// DES加密
/// </summary>
/// <param name="encryptString"></param>
/// <returns></returns>
public static string DesEncrypt(string encryptString)
{
byte[] keyBytes = Encoding.UTF8.GetBytes(key.Substring(0, 8));
byte[] keyIV = keyBytes;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
//直接加密
byte[] encrypted = provider.CreateEncryptor(keyBytes, keyIV).TransformFinalBlock(inputByteArray, 0, inputByteArray.Length);
return Convert.ToBase64String(encrypted);
//用流方式加密
//MemoryStream mStream = new MemoryStream();
//CryptoStream cStream = new CryptoStream(mStream, provider.CreateEncryptor(keyBytes, keyIV), CryptoStreamMode.Write);
//cStream.Write(inputByteArray, 0, inputByteArray.Length);
//cStream.FlushFinalBlock();
//return Convert.ToBase64String(mStream.ToArray());
}

/**//// <summary>
/// DES解密
/// </summary>
/// <param name="decryptString"></param>
/// <returns></returns>
public static string DesDecrypt(string decryptString)
{
byte[] keyBytes = Encoding.UTF8.GetBytes(key.Substring(0, 8));
byte[] keyIV = keyBytes;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
//直接解密
byte[] outputdata = provider.CreateDecryptor(keyBytes, keyIV).TransformFinalBlock(inputByteArray, 0, inputByteArray.Length);
return Encoding.UTF8.GetString(outputdata);
//用流方式解密
//MemoryStream mStream = new MemoryStream();
//CryptoStream cStream = new CryptoStream(mStream, provider.CreateDecryptor(keyBytes, keyIV), CryptoStreamMode.Write);
//cStream.Write(inputByteArray, 0, inputByteArray.Length);
//cStream.FlushFinalBlock();
//return Encoding.UTF8.GetString(mStream.ToArray());
}
}

}
jkzzj1984
2010-07-14 · TA获得超过122个赞
知道答主
回答量:266
采纳率:0%
帮助的人:268万
展开全部
public static string MD5(string Source)
{
return FormsAuthentication.HashPasswordForStoringInConfigFile(Source, "MD5");
}

用两次。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一分钟的习惯
2010-07-14 · TA获得超过1740个赞
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:181万
展开全部
就用两个方法 一个加密 和一个解密的方法

去网上找下 DEC ,MD5 的加密方法就行了。

一般都是去找的,很少有人去写。

public string EncryptStr(string PWD, int Format)
{
string str = "";
switch (Format)
{
case 0:
str = FormsAuthentication.HashPasswordForStoringInConfigFile(PWD, "SHA1");
break;
case 1:
str = FormsAuthentication.HashPasswordForStoringInConfigFile(PWD, "MD5");
break;
}
return str;
}

这是一个很简单的例子 ,你也可以去网上找下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
布丁龙
2010-07-14
知道答主
回答量:27
采纳率:0%
帮助的人:0
展开全部
把字符的ASCII码+1然后再恢复成字符就是乱码了。
解密就是...ASCII码-1...这是最简单的加减密,嗯...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式