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无锁编程[通俗易懂]

    linux无锁编程[通俗易懂]简单的笔记,未完待续一道题:无锁化编程有哪些常见方法?针对计数器,可以使用原子加只有一个生产者和一个消费者,那么就可以做到免锁访问环形缓冲区(RingBuffer)RCU(Read-Copy-Update),新旧副本切换机制,对于旧副本可以采用延迟释放的做法 CAS(Compare-and-Swap),如无锁栈,无锁队列等待解析:一、RCU   

    2022年6月9日
    55
  • 代码保护– 几款加壳工具

    代码保护– 几款加壳工具VirboxProtector(商用)分带授权的版本和独立壳。带授权的版本加壳后需要绑定许可,许可控制软件能否用,加壳保护安全。独立版的话就只是对代码做加壳,防止代码反编译。碎片代码执行、外壳加密、混淆、数据加密。服务商提供了较为完善的文档以及加密方式,提供了较为充分的产品管理平台,以及云端网络加密,并且对于开发者免费使用。使用评价:简单下载使用了一下,提供的功能很多,并且管…

    2022年6月27日
    51
  • Ubuntu 18.04上安装cuda「建议收藏」

    Ubuntu 18.04上安装cuda「建议收藏」一、准备工作参照官网上资料,进行准备工作1.验证自己的电脑是否有一个可以支持CUDA的GPU$lspci|grep-invidia我的显示为TeslaP800ifitislistedinhttp://developer.nvidia.com/cuda-gpus,yourGPUisCUDA-capable2.验证自己的Linux版本是否支持…

    2025年11月18日
    6
  • Centos7离线安装autoconf

    Centos7离线安装autoconf文章目录1.安装步骤1.1安装M41.2安装perl的依赖包perl-Data-Dumper1.3安装autoconf2.安装过程参考1.安装步骤1.1安装M4下载:http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz拷贝到centos系统上,并解压:tar-xzvfm4-1.4.13.tar.gz到解压目录中:cdm4-1.4.13#配置编译环境./configure–prefix=/usr/local#编

    2022年6月4日
    58
  • 关于微信网页版WeChat不能正常登录的最佳解决方案

    关于微信网页版WeChat不能正常登录的最佳解决方案 因为出于工作和学习的目的,我的个人电脑操作系统使用的是Ubuntu18.04LTS,就目前而言,许多优秀的软件都有Linux版本,虽然Linux的用户相对群体较小,但是其软件生态也在逐渐成长,而且日常使用浏览器就可以解决许多的应用需求。现在微信和QQ在生活和工作领域均是举足轻重,emm…  BUT!!!腾讯到目前为止并没有推出Linux版的微信和TI…

    2022年5月11日
    84
  • java的db是什么_java db[通俗易懂]

    java的db是什么_java db[通俗易懂]关于javadb的搜索结果问题关于DB+RECORD操作oracle数据库的问题?报错@JFinal你好,想跟你请教个问题:我操作oracle数据库,插入一条记录Recorduser=newRecord().set(“userid”,…爱吃鱼的程序员2020-06-2220:22:060浏览量回答数1回答为什么不用分页查询是为了导出Excel使用的,前台页面的分页查询没有问题…

    2022年7月7日
    45

发表回复

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

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