using System;
using System.IO;
using System.Security.Cryptography;
using System.Text; /// <summary>
/// Encrypt 的摘要说明
/// </summary>
public static class Encrypt
{
    #region 解密由AES加密的字符串
    /// <summary>
    /// 解密由AES加密的字符串
    /// </summary>
    /// <param name="source">加密字符串</param>
    /// <param name="key">加密密钥</param>
    /// <returns>解密后的字符串</returns>
    public static string Dencrypt_AES(string source, string key)
    {
        try
        {
            Rijndael rijndael = Rijndael.Create();
            rijndael.Key = Encoding.Default.GetBytes(key);
            rijndael.IV = Encoding.Default.GetBytes(key.Substring(0, 0x10));
            byte[] buffer = Convert.FromBase64String(source);
            MemoryStream stream = new MemoryStream();
            CryptoStream stream2 = new CryptoStream(stream, rijndael.CreateDecryptor(), CryptoStreamMode.Write);
            stream2.Write(buffer, 0, buffer.Length);
            stream2.FlushFinalBlock();
            return Encoding.Default.GetString(stream.ToArray());
        }
        catch
        {
            return null;
        }
    }
    #endregion     #region 解密由DES加密的字符串
    /// <summary>
    /// 解密由DES加密的字符串
    /// </summary>
    /// <param name="source">加密的字符串</param>
    /// <param name="key">加密的密钥</param>
    /// <returns>解密后的字符串</returns>
    public static string Dencrypt_DES(string source, string key)
    {
        try
        {
            DESCryptoServiceProvider provider2 = new DESCryptoServiceProvider
            {
                Key = Encoding.Default.GetBytes(key),
                IV = Encoding.Default.GetBytes(key)
            };
            DESCryptoServiceProvider provider = provider2;
            byte[] buffer = Convert.FromBase64String(source);
            MemoryStream stream = new MemoryStream();
            CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
            stream2.Write(buffer, 0, buffer.Length);
            stream2.FlushFinalBlock();
            return Encoding.Default.GetString(stream.ToArray());
        }
        catch
        {
            return null;
        }
    }
    #endregion     #region 解密由RC2加密的字符串
    /// <summary>
    /// 解密由RC2加密的字符串
    /// </summary>
    /// <param name="source">加密的字符串</param>
    /// <param name="key">加密的密钥</param>
    /// <returns>解密后的字符串</returns>
    public static string DEncrypt_RC2(string source, string key)
    {
        try
        {
            RC2CryptoServiceProvider provider2 = new RC2CryptoServiceProvider
            {
                Key = Encoding.Default.GetBytes(key),
                IV = Encoding.Default.GetBytes(key)
            };
            RC2CryptoServiceProvider provider = provider2;
            byte[] buffer = Convert.FromBase64String(source);
            MemoryStream stream = new MemoryStream();
            CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
            stream2.Write(buffer, 0, buffer.Length);
            stream2.FlushFinalBlock();
            return Encoding.Default.GetString(stream.ToArray());
        }
        catch
        {
            return null;
        }
    }
    #endregion     #region 解密由TripleDES加密的字符串
    /// <summary>
    /// 解密由TripleDES加密的字符串
    /// </summary>
    /// <param name="source">加密的字符串</param>
    /// <param name="key">加密的密钥</param>
    /// <returns>解密后的字符串</returns>
    public static string Dencrypt_TripleDES(string source, string key)
    {
        try
        {
            TripleDESCryptoServiceProvider provider2 = new TripleDESCryptoServiceProvider
            {
                Key = Encoding.Default.GetBytes(key),
                IV = Encoding.Default.GetBytes(key.Substring(0, 8))
            };
            TripleDESCryptoServiceProvider provider = provider2;
            byte[] buffer = Convert.FromBase64String(source);
            MemoryStream stream = new MemoryStream();
            CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
            stream2.Write(buffer, 0, buffer.Length);
            stream2.FlushFinalBlock();
            return Encoding.Default.GetString(stream.ToArray());
        }
        catch
        {
            return null;
        }
    }
    #endregion     #region 使用AES方式进行加密
    /// <summary>
    /// 使用AES方式进行加密
    /// </summary>
    /// <param name="source">需要加密的字符串</param>
    /// <param name="key">加密用的密钥</param>
    /// <returns>加密后的字符串</returns>
    public static string Encrypt_AES(string source, string key)
    {
        try
        {
            Rijndael rijndael = Rijndael.Create();
            rijndael.Key = Encoding.Default.GetBytes(key);
            rijndael.IV = Encoding.Default.GetBytes(key.Substring(0, 0x10));
            byte[] bytes = Encoding.Default.GetBytes(source);
            MemoryStream stream = new MemoryStream();
            CryptoStream stream2 = new CryptoStream(stream, rijndael.CreateEncryptor(), CryptoStreamMode.Write);
            stream2.Write(bytes, 0, bytes.Length);
            stream2.FlushFinalBlock();
            return Convert.ToBase64String(stream.ToArray());
        }
        catch
        {
            return null;
        }
    }
    #endregion     #region 使用DES方式进行加密
    /// <summary>
    /// 使用DES方式进行加密
    /// </summary>
    /// <param name="source">需要加密的字符串</param>
    /// <param name="key">加密用的密钥</param>
    /// <returns>加密后的字符串</returns>
    public static string Encrypt_DES(string source, string key)
    {
        try
        {
            DESCryptoServiceProvider provider2 = new DESCryptoServiceProvider
            {
                Key = Encoding.Default.GetBytes(key),
                IV = Encoding.Default.GetBytes(key)
            };
            DESCryptoServiceProvider provider = provider2;
            byte[] bytes = Encoding.Default.GetBytes(source);
            MemoryStream stream = new MemoryStream();
            CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write);
            stream2.Write(bytes, 0, bytes.Length);
            stream2.FlushFinalBlock();
            return Convert.ToBase64String(stream.ToArray());
        }
        catch
        {
            return null;
        }
    }
    #endregion     #region 使用MD5方式进行加密
    /// <summary>
    /// 使用MD5方式进行加密
    /// </summary>
    /// <param name="source">需要加密的字符串</param>
    /// <param name="key">加密用的密钥</param>
    /// <returns>加密后的字符串</returns>
    public static string Encrypt_MD5(string source)
    {
        string str = "";
        MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
        byte[] bytes = Encoding.Default.GetBytes(source);
        byte[] buffer2 = provider.ComputeHash(bytes);
        foreach (byte num in buffer2)
        {
            str = str + num.ToString("X").PadLeft(2, '0');
        }
        return str;
    }
    #endregion     #region 使用RC2方式进行加密
    /// <summary>
    /// 使用RC2方式进行加密
    /// </summary>
    /// <param name="source">需要加密的字符串</param>
    /// <param name="key">加密用的密钥</param>
    /// <returns>加密后的字符串</returns>
    public static string Encrypt_RC2(string source, string key)
    {
        try
        {
            RC2CryptoServiceProvider provider2 = new RC2CryptoServiceProvider
            {
                Key = Encoding.Default.GetBytes(key),
                IV = Encoding.Default.GetBytes(key)
            };
            RC2CryptoServiceProvider provider = provider2;
            byte[] bytes = Encoding.Default.GetBytes(source);
            MemoryStream stream = new MemoryStream();
            CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write);
            stream2.Write(bytes, 0, bytes.Length);
            stream2.FlushFinalBlock();
            return Convert.ToBase64String(stream.ToArray());
        }
        catch
        {
            return null;
        }
    }
    #endregion     #region 使用TripleDES方式进行加密
    /// <summary>
    /// 使用TripleDES方式进行加密
    /// </summary>
    /// <param name="source">需要加密的字符串</param>
    /// <param name="key">加密用的密钥</param>
    /// <returns>加密后的字符串</returns>
    public static string Encrypt_TripleDES(string source, string key)
    {
        try
        {
            TripleDESCryptoServiceProvider provider2 = new TripleDESCryptoServiceProvider
            {
                Key = Encoding.Default.GetBytes(key),
                IV = Encoding.Default.GetBytes(key.Substring(0, 8))
            };
            TripleDESCryptoServiceProvider provider = provider2;
            byte[] bytes = Encoding.Default.GetBytes(source);
            MemoryStream stream = new MemoryStream();
            CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write);
            stream2.Write(bytes, 0, bytes.Length);
            stream2.FlushFinalBlock();
            return Convert.ToBase64String(stream.ToArray());
        }
        catch
        {
            return null;
        }
    }
    #endregion     #region 获取加密的密钥
    /// <summary>
    /// 获取加密的密钥
    /// </summary>
    /// <param name="EncryptType">加密方式</param>
    /// <returns>密钥</returns>
    public static string GetKey(EncryptType encryptType)
    {
        switch (encryptType)
        {
            case EncryptType.AES:
                return "1zx2fqw3eas4dtg8hui9opl6dfh5aok0";             case EncryptType.DES:
                return "zxc52mxb";             case EncryptType.TDES:
                return "zxc52mxbqwdftghu24dfhji0";             case EncryptType.RC2:
                return "qwedfgbd";
        }
        return "";
    }
    #endregion     public enum EncryptType:byte
    {
        AES,
        DES,
        TDES,
        RC2
    }
}

C#常用加密方法的更多相关文章

  1. iOS常用加密方法(aes、md5、base64)

    1.代码 iOS常用加密方法(aes.md5.base64) .AES加密 NSData+AES.h文件 // // NSData-AES.h // Smile // // Created by 周 ...

  2. IOS开发之----常用加密方法

    本文转载至 http://blog.csdn.net/wildfireli/article/details/23191983 (AES.MD5.Base64) 分类: iPhone 2014-04-0 ...

  3. Java中常用的加密方法(JDK)

    加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容.大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些 ...

  4. ASP.NET常用加密解密方法

    ASP.NET常用加密解密方法 一.MD5加密解密 1.加密 C# 代码           public static string ToMd5(string clearString)        ...

  5. [转载] Java中常用的加密方法

    转载自http://www.iteye.com/topic/1122076/ 加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的 ...

  6. IOS常见的加密方法,常用的MD5和Base64

    iOS代码加密常用加密方式 iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密.AES加密.BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文 MD5 iO ...

  7. 2019-2-20C#开发中常用加密解密方法解析

    C#开发中常用加密解密方法解析 一.MD5加密算法 我想这是大家都常听过的算法,可能也用的比较多.那么什么是MD5算法呢?MD5全称是 message-digest algorithm 5[|ˈmes ...

  8. iOS里常见的几种信息编码、加密方法简单总结

    一.MD5 MD5编码是最常用的编码方法之一,是从一段字符串中通过相应特征生成一段32位的数字字母混合码. MD5主要特点是 不可逆,相同数据的MD5值肯定一样,不同数据的MD5值不一样(也不是绝对的 ...

  9. iOS代码加密常用加密方式

    iOS代码加密常用加密方式 iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密.AES加密.BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文 MD5 iO ...

随机推荐

  1. h264_rtp打包解包类及实现demo

    打包头文件: class CH2642Rtp { public: CH2642Rtp(uint32_t ssrc, uint8_t payloadType = 96, uint8_t fps = 25 ...

  2. 转sql server新增、修改字段语句(整理)

    添加字段的SQL语句的写法: 通用式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数增加字段: alter table [表名] ...

  3. MySQL server has gone away 的两个最常见的可能性

    [背景] 今天测试同学反馈他们docker中的测试库时不时就就报“MySQL server has gone away”,事态之紧急搞的我都有点怕了(像我这么成熟稳重 的DBA怎么有可能怕呢): 第一 ...

  4. python中的__new__与__init__,新式类和经典类(2.x)

    在python2.x中,从object继承得来的类称为新式类(如class A(object))不从object继承得来的类称为经典类(如class A()) 新式类跟经典类的差别主要是以下几点: 1 ...

  5. java设计模式三种工厂模式简单介绍

    一.简单工厂模式 概述:简单工厂模式的创建意图就是,把对类的创建初始化全都交给一个工厂来执行,而用户不需要去关心创建的过程是什么样的,只用告诉工厂我想要什么就行了.而这种方法的缺点也很明显,违背了设计 ...

  6. Roslyn如何实现简单的代码提示

    假如需要实现一个代码编辑器,其中一个很重要的功能是实现代码提示,类似VS的代码智能提示.下面用Roslyn编译器来实现一个简单的代码提示功能. 代码提示,首先必须需要知道对象的类型信息,然后通过迭代获 ...

  7. [转]浅谈Normalize.css

    原文地址:https://www.jianshu.com/p/3d21d1932aa0 Normalize.css只是一个很小的css文件,但它在默认的HTML元素样式上提供了跨浏览器的高度一致性.相 ...

  8. HashMap中capacity、loadFactor、threshold、size等概念的解释<转>

    最近在看HashMap的源码,有很多概念都很模糊,今天写了一个测试例子,加深对这几个概念的理解,并演示了扩容及树化的过程(见下篇博文:). 注:本文基于JDK 1.8  HashMap的结构 约定 约 ...

  9. go get fatal: could not read Username for 'https://code.xxx.org': terminal prompts disabled

    用go get下载私有代码库的时候,莫名其妙产生了以下错误,公有代码库没有影响. chenchideMacBook-Pro:~ chenchi$ go get code.xxx.org/adarch/ ...

  10. ubuntu Ros环境halcon的一个程序

    这个首先并不是我一边做实验一遍记录的,而是我做完成以后才想起来做个分享的,所以中途遇到的很多问题,并没有来得及记录下来,现在写的这些都是后话了 首先呢!我们不需要在ROS下写halcon的程序也是可以 ...