
C#中对某一字符串加密
比如要将一个字母和数字组成的字符串加密为一段乱码,并且还要将这段乱码解密,该怎么做?求高人给个思路。...
比如要将一个字母和数字组成的字符串加密为一段乱码,并且还要将这段乱码解密,该怎么做?求高人给个思路。
展开
4个回答
展开全部
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());
}
}
}
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());
}
}
}
展开全部
public static string MD5(string Source)
{
return FormsAuthentication.HashPasswordForStoringInConfigFile(Source, "MD5");
}
用两次。。
{
return FormsAuthentication.HashPasswordForStoringInConfigFile(Source, "MD5");
}
用两次。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就用两个方法 一个加密 和一个解密的方法
去网上找下 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;
}
这是一个很简单的例子 ,你也可以去网上找下
去网上找下 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;
}
这是一个很简单的例子 ,你也可以去网上找下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把字符的ASCII码+1然后再恢复成字符就是乱码了。
解密就是...ASCII码-1...这是最简单的加减密,嗯...
解密就是...ASCII码-1...这是最简单的加减密,嗯...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询