QiFeng.ZWY.Utility/Security/DesLib.cs

(开头部分) 13KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;

namespace QiFeng.LMSD.Utility.Security
{
    public class DesLib
    {
        //默认密钥向量
        private static byte[] IvByte = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };

        /// <summary>
        /// DES加密字符串
        /// </summary>
        /// <param name="encryptString">待加密的字符串</param>
        /// <param name="encryptKey">加密密钥,要求为8位</param>
        /// <param name="padMode">加密填充方式</param>
        /// <param name="cipherMode">加密模式</param>
        /// <param name="outHelixText">是否将加密BYTE转为十六进制字符,默认为BASE64编码后字符串</param>
        /// <param name="ivSameToEncryptKey">是否加密向量与加密密钥一致,默认使用类默认密钥向量</param>
        /// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
        public static string EncryptDes(string encryptString, string encryptKey, PaddingMode padMode,
            CipherMode cipherMode, bool outHelixText = false, bool ivSameToEncryptKey = false)
        {
            try
            {
                var rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
                var inputByteArray = Encoding.UTF8.GetBytes(encryptString);
                var dCsp = new DESCryptoServiceProvider
                {
                    Padding = padMode,
                    Mode = cipherMode,
                    Key = rgbKey,
                    IV = ivSameToEncryptKey ? rgbKey : IvByte
                };
                
                var mStream = new MemoryStream();

                var cStream = new CryptoStream(mStream, dCsp.CreateEncryptor(), CryptoStreamMode.Write);
                cStream.Write(inputByteArray, 0, inputByteArray.Length);
                cStream.FlushFinalBlock();
                cStream.Close();

                if (outHelixText)
                {
                    var builder = new StringBuilder();
                    foreach (byte num in mStream.ToArray())
                    {
                        builder.AppendFormat("{0:X2}", num);
                    }
                    
                    return builder.ToString();
                }
                return Convert.ToBase64String(mStream.ToArray());
            }
            catch (Exception ex)
后面还有 284 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。