C# 加密解密
一种简单的加密


using System;
using System.Collections.Generic;
namespace md
{
class MainClass
{
public interface IBindesh
{
string encode(string str);
string decode(string str);
}
public class EncryptionDecryption : IBindesh
{
public string encode(string str)
{
string htext = "";
for(int i=0;i<str.Length;i++)
{
htext = htext + (char)(str[i] + 10 - 1 * 2);
}
return htext;
}
public string decode(string str)
{
string dtext = "";
for (int i = 0; i < str.Length; i++)
{
dtext = dtext + (char)(str[i] - 10 + 1 * 2);
}
return dtext;
}
public static void Main(string[] args)
{
EncryptionDecryption inter = new EncryptionDecryption();
string str=((IBindesh)inter).encode("admin");
Console.WriteLine(str);
Console.WriteLine(((IBindesh)inter).decode(str));
Console.Read();
}
}
}
}
利用.net中提供的类进行数据DES加密


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Security.Cryptography;
using System.Text;
public partial class 加密解密 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string encryptdata = "ABCD"; //要加密的字符串
string encryptkey = "12345678"; //密钥,必须为8位
StringBuilder sb = new StringBuilder();
sb.Append("要加密的数据是:"+encryptdata+"<br />");
sb.Append("加密后的数据是:"+Encrypt(encryptdata,encryptkey)+"<br />");
sb.Append("解密后的数据是:"+Decrypt(Encrypt(encryptdata,encryptkey),encryptkey)+"<br />");
Response.Write(sb.ToString());
}
#region
private string Encrypt(string strData, string strKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] bytedata = Encoding.UTF8.GetBytes(strData);
//foreach (byte b in bytedata)
//{
// Response.Write(b + "<br />");
//}
//Response.Write("<hr />");
des.Key = ASCIIEncoding.ASCII.GetBytes(strKey); //ASCII码值
des.IV = ASCIIEncoding.ASCII.GetBytes(strKey);
//foreach (byte c in des.Key)
//{
// Response.Write(c + "<br />");
//}
//Response.Write("<hr />");
MemoryStream ms = new MemoryStream();
using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(bytedata, 0, bytedata.Length);
cs.FlushFinalBlock();
cs.Close();
}
//foreach (byte d in ms.ToArray())
//{
// Response.Write(d + "<br />");
//}
string str = Convert.ToBase64String(ms.ToArray());
ms.Close();
des.Clear();
return str;
}
private string Decrypt(string strData, string strKey)
{
byte[] byteData = Convert.FromBase64String(strData);
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
des.Key = ASCIIEncoding.ASCII.GetBytes(strKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(strKey);
MemoryStream ms = new MemoryStream();
using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write))
{
cs.Write(byteData, 0, byteData.Length);
cs.FlushFinalBlock();
cs.Close();
}
string str = Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
return str;
}
}
#endregion
}
如果本文的描述的方法或内容有问题,请给我留言。
分类:
ASP.NET
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述