C# DES (ECB模式) 加密解密 –单倍长「建议收藏」

C# DES (ECB模式) 加密解密 –单倍长

大家好,又见面了,我是全栈君。

加密:  调用时: Encrypt_DES16(“2AF349243535BCD3”, “1111111111111111”);

 public static string Encrypt_DES16(string str_in_data, string str_DES_KEY) //数据为十六进制
        {
            try
            {
                byte[] shuju = new byte[8];
                byte[] keys = new byte[8];
                for (int i = 0; i < 8; i++)
                {
                    shuju[i] = Convert.ToByte(str_in_data.Substring(i * 2, 2), 16);
                    keys[i] = Convert.ToByte(str_DES_KEY.Substring(i * 2, 2), 16);
                }
                DES desEncrypt = new DESCryptoServiceProvider();
                desEncrypt.Mode = CipherMode.ECB;
                //desEncrypt.Key = ASCIIEncoding.ASCII.GetBytes(str_DES_KEY);
                desEncrypt.Key = keys;
                byte[] Buffer;
                Buffer = shuju;//ASCIIEncoding.ASCII.GetBytes(str_in_data);
                ICryptoTransform transForm = desEncrypt.CreateEncryptor();
                byte[] R;
                R = transForm.TransformFinalBlock(Buffer, 0, Buffer.Length);
                string return_str = "";
                foreach (byte b in R)
                {
                    return_str += b.ToString("X2");
                }
                return_str = return_str.Substring(0, 16);
                return return_str;
            }
            catch (Exception e)
            {
                throw e;
            }
        }

解密:调用时: Encrypt_DES16(“C47EC89B0A247A47”, “1111111111111111”);

 //DES解密
        public static string Decrypt_DES16(string str_in_data, string str_DES_KEY)//数据和密钥为十六进制
        {
            byte[] shuju = new byte[8];
            byte[] keys = new byte[8];
            for (int i = 0; i < 8; i++)
            {
                shuju[i] = Convert.ToByte(str_in_data.Substring(i * 2, 2), 16);
                keys[i] = Convert.ToByte(str_DES_KEY.Substring(i * 2, 2), 16);
            }
            DES desDecrypt = new DESCryptoServiceProvider();
            desDecrypt.Mode = CipherMode.ECB;
            desDecrypt.Key = keys;
            desDecrypt.Padding = System.Security.Cryptography.PaddingMode.None;
            byte[] Buffer = shuju;
            ICryptoTransform transForm = desDecrypt.CreateDecryptor();
            byte[] R;
            R = transForm.TransformFinalBlock(Buffer, 0, Buffer.Length);
            string return_str = "";
            foreach (byte b in R)
            {
                return_str += b.ToString("X2");
            }
            return return_str;
        }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115214.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux(9)find命令详解「建议收藏」

    linux(9)find命令详解「建议收藏」find命令格式:findpath-option[-print][-exec-okcommand]{}\;find命令的参数:path:要查找的目录路径。~表示$HO

    2022年7月29日
    7
  • Antimalware Service Executable 高内存的处理办法,亲测有效

    Antimalware Service Executable 高内存的处理办法,亲测有效在反恶意软件服务的可执行过程中扮演的重要角色的WindowsDefender与Windows捆绑10服务(和,尽管相似性的名字,是完全无关的Emsisoft反恶意软件!)。但是,它消耗的内存远远超过其应有的CPU处理能力,这也是臭名昭著的,甚至可以单枪匹马地降低计算机的速度,以至于无法应付。如果您是WindowsDefender用户,并且在异常长时间内注意到CPU使用率很高,您将很高兴知道此问题可以轻松解决。在本文中,我们汇总了一些简单的步骤,您可以按照这些简单的步骤来防止Antimalw…

    2022年5月25日
    52
  • 黄金t+d基础知识解析

    黄金t+d基础知识解析投资者无论进行哪种投资,如果想要深入市场,就要掌握最基本的专业术语。比如黄金t+d,它是黄金延期交易,是以保证金交易方式进行交易的、通过引入延期补偿机制来平缓供求矛盾的一种交易模式。投资者可以选择合约交易日当天交割,也可以延期交割。领峰作为互联网金融时代最出色的黄金交易平台之一,始终与最新Fintech科技并肩齐行,为客户提供现货黄金、白银等热门产品交易服务。为广大客户提供第一手环球金融资讯及市场点评,从基本面深入到技术面,精选头条动态为投资者指点迷津。黄金t+d基础知识解析首先来了解一下什么是黄.

    2022年5月28日
    31
  • php 从第几个字符替换,php中几个字符串替换函数详解[通俗易懂]

    php 从第几个字符替换,php中几个字符串替换函数详解[通俗易懂]在php中字符替换函数有几个如有:str_replace、substr_replace、preg_replace、preg_split、str_split等函数,下面我来给大家总结介绍介绍.一、str_replace(find,replace,string,count)作用:str_replace()函数使用一个字符串替换字符串中的另一些字符。参数描述find必需,规定要查找的值.repla…

    2022年5月13日
    56
  • 简述CloudSim的仿真步骤_进程调度的两种方式

    简述CloudSim的仿真步骤_进程调度的两种方式Cloudsim3.0.3中VM调度策略系列类解析(带迁移的策略)注:本文为旧文的markdown重制版Cloudsim中VM调度策略类在DataCenter(或PowerDataCenter)创建时需要制定,更是我们在Cloudsim上试验我们的调度算法的核心所在。CloudSim中给出了VmAllocationPolicy抽象类,还有提供了一个VmAllocationPolicy…

    2022年10月11日
    2
  • 内存泄漏以及常见的解决方法

    内存泄漏以及常见的解决方法

    2021年12月3日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号