首页 > 编程语言 >加解密工具类 - C#小函数类推荐

加解密工具类 - C#小函数类推荐

时间:2024-08-13 09:27:20浏览次数:5  
标签:inputByteArray 函数 C# des 加解密 srcString ms new string

       此文记录的是一个8比特的加解密算法的函数。

/***

    加解密工具类

    Austin Liu 刘恒辉
    Project Manager and Software Designer

    E-Mail: [email protected]
    Blog:   http://lzhdim.cnblogs.com
    Date:   2024-01-15 15:18:00

    使用说明:
        1、加密;
            string DesString = CryptogramUtil.DESEncrypt8Bit("测试字符串","1234567890"):
        2、解密;
            string DesString = CryptogramUtil.DESDecrypt8Bit("测试字符串","1234567890"):

***/

namespace Lzhdim.LPF.Utility
{
    using System;
    using System.IO;
    using System.Security.Cryptography;
    using System.Text;

    /// <summary>
    /// Cryptogram Object
    /// </summary>
    public static class CryptogramUtil
    {
        /// <summary>
        /// DES Decrypt with 8 bit key
        /// </summary>
        /// <param name="srcString">the string which need to decrypt</param>
        /// <param name="sKey">the key of decrypt,length in 8 bit</param>
        /// <returns>the string which had decrypted</returns>
        public static string DESDecrypt8Bit(string srcString, string sKey)
        {
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();

            byte[] inputByteArray = new byte[srcString.Length / 2];
            for (int x = 0; x < srcString.Length / 2; x++)
            {
                int i = (Convert.ToInt32(srcString.Substring(x * 2, 2), 16));
                inputByteArray[x] = (byte)i;
            }

            des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
            des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
            cs.Write(inputByteArray, 0, inputByteArray.Length);
            cs.FlushFinalBlock();
            byte[] b = ms.ToArray();
            ms.Dispose();
            return System.Text.Encoding.Default.GetString(b);
        }

        /// <summary>
        /// DES Encrypt with 8 bit key
        /// </summary>
        /// <param name="srcString">the string which need to encrypt</param>
        /// <param name="sKey">the key of encrypt,length in 8 bit</param>
        /// <returns>the string which had encrypted</returns>
        public static string DESEncrypt8Bit(string srcString, string sKey)
        {
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            byte[] inputByteArray = Encoding.Default.GetBytes(srcString);
            des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
            des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
            cs.Write(inputByteArray, 0, inputByteArray.Length);
            cs.FlushFinalBlock();
            StringBuilder ret = new StringBuilder();
            foreach (byte b in ms.ToArray())
            {
                ret.AppendFormat("{0:X2}", b);
            }

            return ret.ToString();
        }
    }
}

 

标签:inputByteArray,函数,C#,des,加解密,srcString,ms,new,string
From: https://www.cnblogs.com/lzhdim/p/18325727

相关文章

  • Glary Utilities:一键优化,全方位提升您的PC性能与稳定性
    GlaryUtilities:一款免费、强大且全能的系统优化工具,旨在提高PC性能、修复崩溃、错误和其他问题。它集成了20多个工具,可最大限度地优化计算机性能。让我们深入了解一下这款软件。软件简介GlaryUtilities 是一款受欢迎的系统维护和优化工具,适用于Windows操作系统。它提......
  • VS Code Server的离线安装过程
    1.服务器上vscode-server安装取决于你本地使用的vscode版本,版本用commit_id来区别。首先打开vscode,点击帮助-关于(Help->about可以查看),如下这个commitid也就是你本地Vscode版本的commitid:2.vscode-server的下载链接如下:https://update.code.visualstud......
  • MySQL常用命令增删改查select,update,alter...
    MySQL常用命令增删改查select,update,alter…文章目录MySQL常用命令增删改查select,update,alter...MySQL修改用户密码MySQL删除用户命令MySQL修改用户密码查看MySQL的用户及hostselectuser,hostfrommysql.user;备注host分别代表的连接方式user@‘localh......
  • Bandicam绿色便携版:高清视频录制的自由之选
    Bandicam绿色便携版这是一款由韩国开发的高清录制视频软件,号称世界三大视频录制神器之一,它录制的视频质量高达4K,帧率高达144FPS,支持多种格式和编码器,还有许多实用的功能和设置,让您的视频录制更加简单和方便。Bandicam绿色便携版的特点是它不需要安装,只需解压缩后运行即可,无需......
  • DolphinDB 中高频回测解决方案:期货分钟频 CTA 策略回测实例
    CTA策略在现代金融市场中扮演着重要角色,通过技术分析和趋势跟踪,其能够帮助用户捕捉市场动向,实现风险对冲和利润最大化。在中高频交易中,CTA策略对交易效率、盈利能力的助益尤为明显。在投入实盘交易之前,利用市场的历史数据对量化中高频策略进行测试和评估是确保交易策略有效......
  • C++:内存管理
    C++内存管理的概念        C语言内存管理方式(malloc/free)在C++中可以继续使用,但有些地方就无能为力,而且使用起来比较麻烦,因此C++又提出了自己的内存管理方式:通过new和delete操作符进行动态内存管理。new/delete                    new/d......
  • 11、java程序流程控制之三:循环结构(while循环)、循环结构(do-while循环)、break 与 co
    java程序流程控制之三:Ⅰ、循环结构:while循环1、while循环结构:其一、描述:其二、代码为:其三、截图为:Ⅱ、循环结构:do-while循环1、do-while循环结构:其一、描述:其二、代码为:其三、截图为:2、do-while循环结构的案例1:输出正数或负数的个数其一、描述:其二、代码为:其三、......
  • C++:类与对象(下)
    再探构造函数        构造函数体赋值与初始化列表其实之前我们实现构造函数时,初始化成员变量主要使⽤函数体内赋值,构造函数初始化还有⼀种⽅式,就是初始化列表,C++规定初始化列表的使⽤⽅式是以⼀个冒号开始,接着是⼀个以逗号分隔的数据成员列表,每个"成员变量"后⾯跟......
  • C++:类与对象(中)
    类的默认成员函数:        在C++中,如果你没有显式地定义某些特定的成员函数(如构造函数、析构函数、拷贝构造函数、拷贝赋值运算符和移动构造函数),那么编译器会自动生成这些函数。这些由编译器自动生成的函数被称为默认成员函数。        构造函数   ......
  • ntdsutil.exe 是一个用于管理和维护 Windows Server 中的 Active Directory 数据库的
     ntdsutil.exe是一个用于管理和维护WindowsServer中的ActiveDirectory数据库的命令行工具。它允许管理员执行多种任务,包括: 备份和还原ActiveDirectory数据库:你可以使用ntdsutil来创建数据库的备份、还原数据库以及检查和修复数据库的完整性。维护和修复Act......