`
bailangfei3344
  • 浏览: 43746 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C# 字符串加密 解密 工具类

 
阅读更多

 

 

 

 

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

namespace Ship.GlobalMethod
{
    public class SymmetricMethod
    {
        private SymmetricAlgorithm mobjCryptoService;
        private string Key;
        /// <summary>
        /// 对称加密类的构造函数
        /// </summary>
        public SymmetricMethod()
        {
            mobjCryptoService = new RijndaelManaged();
            Key = "jcsmkjGuz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7";
        }
        /// <summary>
        /// 获得密钥
        /// </summary>
        /// <returns>密钥</returns>
        private byte[] GetLegalKey()
        {
            string sTemp = Key;
            mobjCryptoService.GenerateKey();
            byte[] bytTemp = mobjCryptoService.Key;
            int KeyLength = bytTemp.Length;
            if (sTemp.Length > KeyLength)
                sTemp = sTemp.Substring(0, KeyLength);
            else if (sTemp.Length < KeyLength)
                sTemp = sTemp.PadRight(KeyLength, ' ');
            return ASCIIEncoding.ASCII.GetBytes(sTemp);
        }
        /// <summary>
        /// 获得初始向量IV
        /// </summary>
        /// <returns>初试向量IV</returns>
        private byte[] GetLegalIV()
        {
            string sTemp = "jcsmkjE4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk";
            mobjCryptoService.GenerateIV();
            byte[] bytTemp = mobjCryptoService.IV;
            int IVLength = bytTemp.Length;
            if (sTemp.Length > IVLength)
                sTemp = sTemp.Substring(0, IVLength);
            else if (sTemp.Length < IVLength)
                sTemp = sTemp.PadRight(IVLength, ' ');
            return ASCIIEncoding.ASCII.GetBytes(sTemp);
        }
        /// <summary>
        /// 加密方法
        /// </summary>
        /// <param name="Source">待加密的串</param>
        /// <returns>经过加密的串</returns>
        public string Encrypto(string Source)
        {
            byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);
            MemoryStream ms = new MemoryStream();
            mobjCryptoService.Key = GetLegalKey();
            mobjCryptoService.IV = GetLegalIV();
            ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
            CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
            cs.Write(bytIn, 0, bytIn.Length);
            cs.FlushFinalBlock();
            ms.Close();
            byte[] bytOut = ms.ToArray();
            return Convert.ToBase64String(bytOut);
        }
        /// <summary>
        /// 解密方法
        /// </summary>
        /// <param name="Source">待解密的串</param>
        /// <returns>经过解密的串</returns>
        public string Decrypto(string Source)
        {
            byte[] bytIn = Convert.FromBase64String(Source);
            MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);
            mobjCryptoService.Key = GetLegalKey();
            mobjCryptoService.IV = GetLegalIV();
            ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
            CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
            StreamReader sr = new StreamReader(cs);
            return sr.ReadToEnd();
        }

    }
}
 

 

分享到:
评论

相关推荐

    c#版字符串DES加密解密工具源码

    本篇将详细解析标题为“c#版字符串DES加密解密工具源码”的资源,以及相关知识点。 DES(Data Encryption Standard)是一种对称加密算法,它在1970年代由IBM开发并被美国国家标准局采用为标准。DES使用56位的密钥,...

    用 c# 做的字符串加密解密工具

    综上所述,用C#创建的字符串加密解密工具结合了C#的加密库和各种加密算法,以确保数据库连接字符串等敏感信息的安全。理解这些概念和技术可以帮助开发者构建更安全的应用程序,保护用户数据免受潜在威胁。

    C#对字符串加密解密dll源码

    描述中提到的"C#对字符串加密解密dll源码"可能包含一个自定义的加密类库,这个库可能封装了加密和解密的逻辑,允许开发者通过简单调用方法并提供密钥来完成操作。在实际应用中,用户可能需要自定义密钥以增加安全性...

    C#字符串加密解密方法

    在C#编程语言中,字符串加密解密是信息安全领域中的重要技术,用于保护敏感数据不被非法访问。本文将深入探讨C#中实现字符串加密解密的几种常见方法,包括基本概念、常用库以及具体代码示例。 1. **基础概念** - ...

    c# asp.net 字符串加密解密的类

    在提供的压缩包文件"C#字符串加密解密"中,可能包含了关于这些加密解密方法的源代码示例,你可以下载并研究其中的实现细节,以便在自己的项目中灵活运用。记住,理解并正确使用这些工具对于确保应用程序的数据安全性...

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

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

    C#RSA加密解密工具

    C# RSA加密解密工具是一种基于公钥/私钥对的加密算法实现,主要用于保障数据的安全传输和存储。RSA(Rivest-Shamir-Adleman)算法是公开密钥加密技术的鼻祖,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出...

    C# 数据加密 字符串加密并保存文件

    本文将深入探讨如何使用C#进行字符串加密,并将其保存到文件中,以此来保护您的数据不被未经授权的访问。 首先,我们需要了解基本的加密概念。加密是将明文数据转换成看似随机的密文,以防止未经授权的用户读取。...

    c# 可逆 加密 解密算法

    通过对C#中的`DeEncode`类进行分析,我们可以了解到如何使用`.NET`框架提供的工具实现基本的对称加密解密操作。尽管这个例子较为基础,但它为我们提供了一个很好的起点,可以在实际项目中进一步扩展和完善。

    C#实现简易的加密、解密字符串工具类实例

    本文实例讲述了C#实现简易的加密、解密字符串工具类。分享给大家供大家参考。具体如下: 这里的类CypherHelper是一个用于加密、解密字符串的工具类~~~,适合于方便地加密、解密长度较短的密码等字符串(C#里面已经有...

    C# Base64加密解密

    总的来说,C#中的Base64加密解密提供了简单且安全的方法来处理二进制数据,特别是在需要在文本环境(如邮件、网页)中传输时。在WinForm应用中,开发者可以结合UI设计,创建用户友好的工具,方便地进行Base64编码和...

    C#base64加密解密工具(有源码)

    总结来说,C#的Base64加密解密工具提供了对二进制数据的简单编码和解码,方便在各种环境中传递和存储数据。源码的分析有助于开发者理解和掌握这一基础但实用的技术,进一步提高编程能力。在使用过程中,注意正确处理...

    【原创】C# RC4 加密解密工具

    在C#中实现RC4加密解密,可以使用System.Security.Cryptography命名空间中的Rfc2898DeriveBytes和RC4类。以下是一个基本的示例: ```csharp using System; using System.IO; using System.Security.Cryptography; ...

    C#加密解密,包括DES、MD5、SHA256

    根据给定文件的信息,我们可以总结出关于C#中几种常用加密...通过以上代码示例,我们了解了如何在C#中实现DES加密解密、MD5和SHA256散列函数。这些技术在实际开发中非常有用,尤其是在保护用户数据的安全性和隐私方面。

    QT字符串加密解密源码,我还有相同加密方法的php、C#、QT、golang、java版本

    QT字符串加密解密源码是跨平台编程中一个重要的实用技术,特别是在多语言环境中,确保数据的安全传输至关重要。本资源提供了在QT环境下实现的加密解密功能,并且兼容其他多种编程语言,如PHP、C#、Java和Golang,这...

    C# 数据库链接字符串加密解密工具代码详解

    C# 数据库链接字符串加密解密工具代码详解 在软件开发中,保护数据库链接字符串的安全性非常重要,尤其是在WinForm或者是WPF项目中。为了防止项目外泄之后这些信息不被别人看到,我们需要对链接字符串或者其他重要...

    用C#实现RSA的加密与解密

    总结起来,用C#实现RSA加密与解密涉及了非对称加密原理、`RSACryptoServiceProvider`类的使用、密钥生成与管理、以及可能的用户界面设计。在实际应用中,这些知识可以用于保障数据安全,实现安全的通信和存储。

    C#操作注册表,对字符串加密等的类

    在C#中,可以使用内置的`System.Security.Cryptography`命名空间实现字符串加密和解密。这个命名空间提供了多种加密算法,如AES(高级加密标准)、DES(数据加密标准)和RSA(公钥加密算法)。这里以AES为例: ```...

    C#加密解密类及使用说明

    在.NET框架中,C#是一种常用的编程语言...总结,C#提供了丰富的加密解密工具,通过正确使用这些工具,可以有效保护敏感数据,防止数据泄露。在实际开发中,结合良好的安全实践,可以为应用程序提供坚实的数据安全防护。

    C#实现十六进制AES的加解密,字节数组工具类

    本文将详细介绍如何使用C#语言实现十六进制表示的AES(高级加密标准)加解密,并涉及字节数组工具类的使用。 AES是一种广泛采用的块密码,它基于替换和置换的原理,提供对数据的强加密。在C#中,可以利用.NET框架...

Global site tag (gtag.js) - Google Analytics