using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;
using System.Security.Cryptography; namespace AESEncoder
{
class Program
{
static void Main(string[] args)
{
var encoder = new AESEncoder("@111>111@222>222@333>333");
var a = encoder.EncryptString("abc");
var b = encoder.DecryptString(a);
} /// <summary>
/// DESEncrypt加密解密算法。
/// </summary>
public class AESEncoder
{ public AESEncoder(string key)
{
this.Key = key;
} /// <summary>
/// 对称加密解密的密钥
/// </summary>
public string Key { get; private set; } /// <summary>
/// DES加密
/// </summary>
/// <param name="encryptString"></param>
/// <returns></returns>
public string EncryptString(string data)
{
byte[] keyArray = UTF8Encoding.UTF8.GetBytes(this.Key);
byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(data);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rDel.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, , toEncryptArray.Length);
return Convert.ToBase64String(resultArray, , resultArray.Length);
} /// <summary>
/// DES解密
/// </summary>
/// <param name="decryptString"></param>
/// <returns></returns>
public string DecryptString(string data)
{
byte[] keyArray = UTF8Encoding.UTF8.GetBytes(this.Key);
byte[] toEncryptArray = Convert.FromBase64String(data);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rDel.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, , toEncryptArray.Length);
return UTF8Encoding.UTF8.GetString(resultArray);
} public bool EncryptFile(string filepath)
{
try
{
var bytes = File.ReadAllBytes(filepath);
File.WriteAllBytes(filepath, Encoding.UTF8.GetBytes(this.EncryptString(Convert.ToBase64String(bytes))));
return true;
}
catch (Exception ex)
{
Debug.Print(ex.ToString());
return false;
}
} public bool DecryptFile(string filepath)
{
try
{
var bytes = File.ReadAllBytes(filepath);
File.WriteAllBytes(filepath, Convert.FromBase64String(this.DecryptString(Encoding.UTF8.GetString(bytes))));
return true;
}
catch (Exception ex)
{
Debug.Print(ex.ToString());
return false;
}
}
}
}
}
/// <summary>
/// AES256加密解密算法。
/// </summary>
public class AESEncoder
{ public AESEncoder(string key)
{
this.Key = key;
} /// <summary>
/// 对称加密解密的密钥
/// </summary>
public string Key { get; private set; } /// <summary>
/// DES加密
/// </summary>
/// <param name="encryptString"></param>
/// <returns></returns>
public byte[] EncryptBytes(byte[] data)
{
byte[] keyArray = UTF8Encoding.UTF8.GetBytes(this.Key);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rDel.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(data, , data.Length);
return resultArray;
} /// <summary>
/// DES解密
/// </summary>
/// <param name="decryptString"></param>
/// <returns></returns>
public byte[] DecryptBytes(byte[] data)
{
byte[] keyArray = UTF8Encoding.UTF8.GetBytes(this.Key);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rDel.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(data, , data.Length);
return resultArray;
}
}

最新文章

  1. Validform使用ajax详解
  2. Android帧动画
  3. POJ3208:Apocalypse Someday
  4. SQLite核心函数一览
  5. Openstack的计算节点的nova-network异常中止及实例无法删除排错过程
  6. 思科ASA系列防火墙配置手册
  7. SpringMVC+easyui显示数据
  8. Git使用方法记录(一)
  9. js判断获取浏览器关闭状态
  10. Polipo
  11. 2017-3-28 JavaScript 基础、语法
  12. Python循环列表删除元素问题
  13. DAY19、日常模块
  14. Linux kill 命令 以及USR1 信号解释
  15. openjduge 求简单表达式的值
  16. Linux笔记 #09# Tomcat多开以及Nginx负载均衡简单例子
  17. CDH 版本子节点启动问题
  18. 微信小程序解决方案合集
  19. Shell find命令详解
  20. MySQL Crash Course #02# Chapter 3. 4 通配符. 分页

热门文章

  1. windows挂载nfs
  2. linux 读取文本的最后几行
  3. Linux日常之命令sed
  4. 开发规范总结-java代码
  5. git 分支 版本回退
  6. 【模板】Lucas定理
  7. public class Ex2
  8. Django模型层(各种表及表数据的操作)
  9. maven打包指定main入口插件
  10. LeetCode - 删除链表的倒数第N个节点