`
earon
  • 浏览: 19269 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

C#加密解密算法

    博客分类:
  • C#
阅读更多
1、方法一 (不可逆加密)

public string EncryptPassword(string PasswordString,string PasswordFormat )
   {
   string  encryptPassword = null;
   if (PasswordFormat="SHA1"){
   encryptPassword=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString

,"SHA1");
   }
   elseif (PasswordFormat="MD5")
   { encryptPassword=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString

,"MD5");
   }
return encryptPassword ;
}

2、方法二 (可逆加密)

    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;
         }

3、方法三 (可逆加密)

       
        const string KEY_64 = "VavicApp";//注意了,是8个字符,64位

        const string IV_64 = "VavicApp";
public string Encode(string data)
        {
            byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
            byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

            DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
            int i = cryptoProvider.KeySize;
            MemoryStream ms = new MemoryStream();
            CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey,

byIV), CryptoStreamMode.Write);

            StreamWriter sw = new StreamWriter(cst);
            sw.Write(data);
            sw.Flush();
            cst.FlushFinalBlock();
            sw.Flush();
            return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);

        }public string Decode(string data)
        {
            byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
            byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

            byte[] byEnc;
            try
            {
                byEnc = Convert.FromBase64String(data);
            }
            catch
            {
                return null;
            }

            DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
            MemoryStream ms = new MemoryStream(byEnc);
            CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey,

byIV), CryptoStreamMode.Read);
            StreamReader sr = new StreamReader(cst);
            return sr.ReadToEnd();
        }

4、MD5不可逆加密

    (32位加密)
    public string GetMD5(string s, string _input_charset)
    {

        /**//// <summary>
        /// 与ASP兼容的MD5加密算法
        /// </summary>

        MD5 md5 = new MD5CryptoServiceProvider();
        byte[] t = md5.ComputeHash(Encoding.GetEncoding(_input_charset).GetBytes(s));
        StringBuilder sb = new StringBuilder(32);
        for (int i = 0; i < t.Length; i++)
        {
            sb.Append(t[i].ToString("x").PadLeft(2, '0'));
        }
        return sb.ToString();
    }
   (16位加密)

public static string GetMd5Str(string ConvertString)
    {
        MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
        string t2 =

BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)), 4,;
        t2 = t2.Replace("-", "");
        return t2;
    }

5、加解文本文件

    //加密文件
    private static void EncryptData(String inName, String outName, byte[] desKey, byte[]

desIV)
    {
        //Create the file streams to handle the input and output files.
        FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);
        FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);
        fout.SetLength(0);

        //Create variables to help with read and write.
        byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
        long rdlen = 0;              //This is the total number of bytes written.
        long totlen = fin.Length;    //This is the total length of the input file.
        int len;                     //This is the number of bytes to be written at a time.

        DES des = new DESCryptoServiceProvider();
        CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(desKey, desIV),

CryptoStreamMode.Write);

        //Read from the input file, then encrypt and write to the output file.
        while (rdlen < totlen)
        {
            len = fin.Read(bin, 0, 100);
            encStream.Write(bin, 0, len);
            rdlen = rdlen + len;
        }

        encStream.Close();
        fout.Close();
        fin.Close();
    }
    //解密文件
    private static void DecryptData(String inName, String outName, byte[] desKey, byte[]

desIV)
    {
        //Create the file streams to handle the input and output files.
        FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);
        FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);
        fout.SetLength(0);

        //Create variables to help with read and write.
        byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
        long rdlen = 0;              //This is the total number of bytes written.
        long totlen = fin.Length;    //This is the total length of the input file.
        int len;                     //This is the number of bytes to be written at a time.

        DES des = new DESCryptoServiceProvider();
        CryptoStream encStream = new CryptoStream(fout, des.CreateDecryptor(desKey, desIV),

CryptoStreamMode.Write);

        //Read from the input file, then encrypt and write to the output file.
        while (rdlen < totlen)
        {
            len = fin.Read(bin, 0, 100);
            encStream.Write(bin, 0, len);
            rdlen = rdlen + len;
        }

        encStream.Close();
        fout.Close();
        fin.Close();
    }

6、DES

using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;

namespace Component
{
    public class Security
    {
        public Security()
        {
       
        }

        //默认密钥向量
        private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
        /**//**//**//// <summary>
        /// DES加密字符串
        /// </summary>
        /// <param name="encryptString">待加密的字符串</param>
        /// <param name="encryptKey">加密密钥,要求为8位</param>
        /// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
        public static string EncryptDES(string encryptString, string encryptKey)
        {
            try
            {
                byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0,);
                byte[] rgbIV = Keys;
                byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
                DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
                MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey,

rgbIV), CryptoStreamMode.Write);
                cStream.Write(inputByteArray, 0, inputByteArray.Length);
                cStream.FlushFinalBlock();
                return Convert.ToBase64String(mStream.ToArray());
            }
            catch
            {
                return encryptString;
            }
        }

        /**//**//**//// <summary>
        /// DES解密字符串
        /// </summary>
        /// <param name="decryptString">待解密的字符串</param>
        /// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
        /// <returns>解密成功返回解密后的字符串,失败返源串</returns>
        public static string DecryptDES(string decryptString, string decryptKey)
        {
            try
            {
                byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
                byte[] rgbIV = Keys;
                byte[] inputByteArray = Convert.FromBase64String(decryptString);
                DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
                MemoryStream mStream = new MemoryStream();
                CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey,

rgbIV), CryptoStreamMode.Write);
                cStream.Write(inputByteArray, 0, inputByteArray.Length);
                cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
            }
            catch
            {
                return decryptString;
            }
        }

    }
}
分享到:
评论

相关推荐

    C# 加密解密算法

    C# 加密解密算法

    C#加密解密算法demo

    本示例"C#加密解密算法demo"提供了一组实用的加密和解密方法,适用于不同的场景。下面将详细讨论这些知识点。 1. **加密与解密的基本概念**: - 加密是将明文数据转化为无法理解的形式,以保护信息不被未经授权的...

    C#加密解密算法实例

    在"C#加密解密算法实例"项目中,`EncryptDecipherAlgorithm`可能包含了具体实现这些算法的代码示例,包括如何创建和配置加密解密对象,如何处理密钥和初始化向量,以及如何进行加解密操作的完整流程。通过学习这些...

    基于C#加密解密算法的实现

    文件名`SSL.EIA.HelpersTests`可能表示一个测试项目,用于验证上述加密解密功能的正确性。通常,这会包含一系列的单元测试,用以确保加密和解密过程的正确性,以及在不同情况下的行为一致性。 总的来说,理解并熟练...

    C# .net MD5加密解密工具及加密解密类

    C# .net MD5加密解密工具及加密解密类。使用方便,可直接下载加密解密代码在项目中使用。

    C#实现AES加密解密算法

    ### C# 实现 AES 加密解密算法 #### 概述 在计算机科学与信息安全领域,数据加密技术是一项至关重要的技术。AES(Advanced Encryption Standard,高级加密标准)是一种广泛使用的对称加密算法,用于保护敏感数据的...

    c# 可逆 加密 解密算法

    ### C# 可逆加密解密算法解析 #### 一、引言 在现代软件开发中,数据安全显得尤为重要。为了保护敏感数据不被非法访问或窃取,开发者需要使用各种加密技术对数据进行处理。C#作为一种广泛使用的编程语言,在.NET...

    C#加密解密小工具,轻松实现数据加密解密

    C#编写的加密解密小工具,可以对DES、RSA、Base64、SHA、MD5算法,轻松实现数据加密解密需求。 使用方法可浏览博文《C#集成数据加密算法,包含DES、RSA、Base64、SHA、MD5算法,轻松实现数据加密解密需求》

    C# RSA加密解密

    **C# RSA加密解密详解** 在信息安全领域,加密技术是一种至关重要的手段,用于保护数据的隐私和安全性。RSA(Rivest-Shamir-Adleman)算法是一种非对称加密算法,广泛应用于网络通信、数据存储等领域。C#作为.NET...

    C#文本加密解密算法示例源代码.rar

    本示例源代码集合是由程序员肖秋峰提供的,专注于C#语言实现的文本加密解密算法,共包括六个章节,涵盖了100个不同的实例。这些示例旨在帮助开发者理解和应用各种加密技术,以保护敏感信息不被未经授权的访问。 ...

    C#加密解密DeEncryptHelper.zip

    MD5 单向加密 SHA1 单向加密 DES 双向,可解密 加密字符串 ...RSA加密解密及RSA签名和验证 RSA 的密钥产生 产生私钥 和公钥 RSA 方式加密 RSA的解密函数 获取Hash描述表 RSA签名 RSA 签名验证

    C# 对称加密解密算法类

    在C#编程中,对称加密是一种常见的数据保护方法,它使用相同的密钥进行加密和解密过程。这里我们讨论的类"SymmetricMethod"是一个自定义的C#类,用于实现对称加密算法,特别是使用了RijndaelManaged算法。Rijndael是...

    c++和c#同时实现DES加密解密算法

    在本文中,我们将深入探讨DES加密解密算法,并展示如何在C++和C#这两种编程语言中实现这一算法。 首先,理解DES的工作原理至关重要。DES算法主要由以下四个步骤组成:初始置换(IP)、密钥扩展、16轮Feistel网络和...

    c#加密解密源码

    本文将围绕"C#加密解密源码"这一主题,深入探讨C#中加密解密的基本原理、常用算法以及如何通过源代码实现。 1. 加密与解密基础 - 加密:将明文转换为密文的过程,目的是保护数据的安全,防止未经授权的访问。 - ...

    一个简单的字符串加密解密算法(C#)

    一个简单的字符串加密解密算法,使用C#语言实现。。。

    c# 和 c++ 通用加密解密 。有c#和c++的例子代码。通用加解密源码.zip

    c# 和 c++ 通用加密解密 。有c#和c++的例子代码。亲测可用 c# 和 c++ 通用加密解密 。有c#和c++的例子代码。亲测可用 c# 和 c++ 通用加密解密 。有c#和c++的例子代码。亲测可用 c# 和 c++ 通用加密解密 。有c#和c++...

    C#文本加密解密算法示例源代码

    本资源包含了一个全面的C#文本加密解密算法示例源代码集合,这对于开发者来说是一个宝贵的参考资料。 1. **基础概念**: - **加密**:加密是将明文(可读数据)转换为密文(不可读数据)的过程,以防止未经授权的...

    C#实现文件加密解密工具(AES算法)

    本篇将深入探讨如何利用C#和AES(高级加密标准)算法来创建一个文件加密解密工具。 AES是一种对称加密算法,广泛应用于数据保护,因为它既高效又安全。它的基本工作原理是通过一系列复杂的数学运算(如置换、混淆等...

    C#文件加密解密(完整项目)

    一、C#加密技术基础 C#中实现文件加密主要依赖于.NET Framework提供的加密类库,如System.Security.Cryptography命名空间下的各种加密算法。这些算法包括对称加密(如AES、DES、TripleDES)、非对称加密(RSA、DSA...

    c#加密解密类源码

    在.NET框架中,C#语言提供了丰富的加密和解密功能,可以用于保护数据的安全性,防止未经授权的访问。本文将详细解析C#中加密解密的相关...提供的源码可能包含了上述方法的实现,对于深入学习C#加密解密技术非常有价值。

Global site tag (gtag.js) - Google Analytics