C# DES 加解密
using System;
using System.Text;
using System.Security.Cryptography;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Windows.Forms; namespace FirstEliteCSFileEncoder
{
class Program
{
/// <summary>
/// DESEncrypt加密解密算法。
/// </summary>
public class DESEncoder
{
public DESEncoder(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 encryptString)
{
byte[] keyBytes = Encoding.UTF8.GetBytes(this.Key.Substring(, ));
byte[] keyIV = keyBytes;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, provider.CreateEncryptor(keyBytes, keyIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, , inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
} /// <summary>
/// DES解密
/// </summary>
/// <param name="decryptString"></param>
/// <returns></returns>
public string DecryptString(string decryptString)
{
byte[] keyBytes = Encoding.UTF8.GetBytes(this.Key.Substring(, ));
byte[] keyIV = keyBytes;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, provider.CreateDecryptor(keyBytes, keyIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, , inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
} 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;
}
}
} public static bool LoadAssembly(string filepath)
{
try
{
var encoder = new DESEncoder("$u&CIbzz");
var bytes = File.ReadAllBytes(filepath);
var assembly = Assembly.Load(Convert.FromBase64String(encoder.DecryptString(Encoding.UTF8.GetString(bytes))));
MessageBox.Show(assembly.FullName);
return true;
}
catch (Exception ex)
{
Debug.Print(ex.ToString());
return false;
}
} static void Main(string[] args)
{
LoadAssembly(@"");
var encoder = new DESEncoder("$u&CIbzz");
encoder.EncryptFile(@"C:\Users\knife\Desktop\翻译.txt");
encoder.DecryptFile(@"C:\Users\knife\Desktop\翻译.txt");
Console.WriteLine("over");
Console.ReadLine();
} }
}
C# DES 加解密的更多相关文章
- Node.js的DES加解密和MD5加密
最基本的就是经常用的md5加密算法 代码如下 var MD5=function (data) { var _encrymd5 = require('crypto').createHas ...
- 一个java的DES加解密类转换成C#
原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //i ...
- DES加解密算法Qt实现
算法解密qt加密table64bit [声明] (1) 本文源码 大部分源码来自:DES算法代码.在此基础上,利用Qt编程进行了改写,实现了DES加解密算法,并添加了文件加解密功能.在此对署名为b ...
- Java Des加解密方法(c#加密Java解密)
最近我们用Java把一个用.net编写的老系统重新做了翻版,但是登录还是用.net的登录.这样就会遇到一个比较棘手的问题,我们登录用的cookie信息都是.net用des加密的,但我们不得不用Java ...
- DES加解密 cbc模式 的简单讲解 && C++用openssl库来实现的注意事项
DES cbc是基于数据块加密的.数据块的长度为8字节64bit.以数据块为单位循环加密,再拼接.每个数据块加密的秘钥一样,IV向量不同.第一个数据快所需的IV向量,需要我们提供,从第二个数据块开始, ...
- JavaScript与C#互通的DES加解密算法
原文地址:传送门 本文提供了一个能使JavaScript与C#互通的DES加解密算法的实现,在前台页面中用JavaScript版本的DES算法将数据加密之后,传到服务器端,在服务器端可用C#版本的DE ...
- PHP 基础篇 - PHP 中 DES 加解密详解
一.简介 DES 是对称性加密里面常见一种,全称为 Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法.密钥长度是64位(bit),超过位数密钥被忽略.所谓对 ...
- Java拓展教程:文件DES加解密
Java拓展教程:文件加解密 Java中的加密解密技术 加密技术根据一般可以分为对称加密技术和非对称加密技术.对称加密技术属于传统的加密技术,它的加密和解密的密钥是相同的,它的优点是:运算速度快,加密 ...
- javascript JS CryptoJS DES加解密CBC模式与C#DES加解密相同互通
我们只知道不同的语言解密要相互通用,就需要遵循相同的加密方式,然而在具体做技术预研的时候,就发现会遇到很多问题,网上找的资料也是比较片面,所以我踩了坑,并且把解决方案和相关资料源码提供出来,给需要的朋 ...
- JavaScript与C#互通的DES加解密算法的实现(转)
本文提供了一个能使JavaScript与C#互通的DES加解密算法的实现,在前台页面中用JavaScript版本的DES算法将数据加密之后,传到服务器端,在服务器端可用C#版本的DES解密算法将其解密 ...
随机推荐
- java.util.Arrays (JDK 1.7)
1.asList //返回由指定数组支持的固定大小的列表,返回的列表是可序列化的 public static <T> List<T> asList(T... a) { retu ...
- PAT Basic 1038 统计同成绩学生 (20 分)
本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第 1 行给出不超过 1 的正整数 N,即学生总人数.随后一行给出 N 名学生的百分制整数成绩,中间以空格分隔.最 ...
- id 显示用户与用户组的信息
id 显示用户与用户组的信息 1.命令功能 id显示指定用户的用户ID和组ID等信息. 2.语法格式 id option username 参数说明 选项 选项说明 -gx 显示用户组ID -G ...
- crontab定时执行shell脚本
步骤一 首先我们先看一下是否安装了crontab.一般情况下linux系统会自带crontab及crond.如果没有安装,请使用以下指令安装:yum install vixie-cron ...
- 【洛谷P4677】山区建小学
题目大意:给定一个长度为 N 的序列,现选出 M 个点组成一个集合,求这 N 个点到这个集合的最近距离的和是多少. 题解: 状态设计为 dp[i][j] 表示前 i 个点中选出 j 个点的最近距离和是 ...
- Python---webserver项目
# HTTP项目实战 - 深入理解HTTP协议 - 模拟后台服务程序基本流程和大致框架 - 每一个步骤一个文件夹 - 图解http协议,图解tcp/ip协议 # v01-验证技术 - 验证socket ...
- 由于代码环境有dev test prod ,每次提交代码需要很多环境,shell脚本即可解决重复命令问题
在项目外面写入push.sh 内容为 if [ $1!='' ] then msg=$1; else msg='bug'; fi git add . git commit -m $ ...
- The Preliminary Contest for ICPC Asia Shanghai 2019 B. Light bulbs
题目:https://nanti.jisuanke.com/t/41399 思路:差分数组 区间内操作次数为奇数次则灯为打开状态 #include<bits/stdc++.h> using ...
- SSM整合之---环境搭建
SSM整合---环境搭建 l 查询所有用户的信息,保存用户信息 1.pom.xml配置项目所需的jar包 <dependencies> <dependency> <gr ...
- JMS学习五(ActiveMQ的本地事务)
1.ActiveMQ的本地事务 在一个JMS客户端,可以使用本地事务来组合消息的发送和接收.JMS Session接口提供了commit和rollback方法.事务提交意味着生产的所有消息被发送,消费 ...