博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# DES (ECB模式) 加密解密 --单倍长
阅读量:5041 次
发布时间:2019-06-12

本文共 2492 字,大约阅读时间需要 8 分钟。

加密:  调用时: 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://www.cnblogs.com/yxwkf/p/5424481.html

你可能感兴趣的文章
前端chrome浏览器调试总结
查看>>
获取手机验证码修改
查看>>
数据库连接
查看>>
python中数据的变量和字符串的常用使用方法
查看>>
等价类划分进阶篇
查看>>
delphi.指针.PChar
查看>>
Objective - C基础: 第四天 - 10.SEL类型的基本认识
查看>>
java 字符串转json,json转对象等等...
查看>>
极客前端部分题目收集【索引】
查看>>
第四天 selenium的安装及使用
查看>>
关于js的设计模式(简单工厂模式,构造函数模式,原型模式,混合模式,动态模式)...
查看>>
KMPnext数组循环节理解 HDU1358
查看>>
android调试debug快捷键
查看>>
【读书笔记】《HTTP权威指南》:Web Hosting
查看>>
Inoodb 存储引擎
查看>>
数据结构之查找算法总结笔记
查看>>
Linux内核OOM机制的详细分析
查看>>
Android TextView加上阴影效果
查看>>
Requests库的基本使用
查看>>
C#:System.Array简单使用
查看>>