c# Des-ECB加解密记录

C# 实现 国密SM4/ECB/PKCS7Padding对称加密解密 也是按照data 16位来分组,第一组数据与初始化向量IV异或后的结果进行加密,密得到第一组密文C1(初始化向量I为全零),第二组数据与第一组的加密结果C1异或以后的结果进行加密,得到第二组密文C2...... 最后C1C2C3......Cn即为加密结果。我们在实现可用data字节的形式,即秘钥Data为16位,加密数据Data需为16的整数倍,这两点很重要。CBC(密文分组链接方式),它的实现机制使加密的各段数据之间有了联系。观察第一块,和第三块,皆为明文块0,相同的输入产生相同的输出。 阅读详情

MD5加密:

/// <summary>
/// 16位MD5加密
/// </summary>
/// <param name="password"></param>
/// <returns></returns>
public static string MD5Encrypt16(string paramToEncrypt)
{
    var md5 = new MD5CryptoServiceProvider();
    string encryptedStr = BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes(paramToEncrypt)), 4, 8);
    encryptedStr = encryptedStr .Replace("-", "");
    return encryptedStr ;
}


/// <summary>
/// 32位MD5加密
/// </summary>
/// <param name="password"></param>
/// <returns></returns>
public static string MD5Encrypt32(string password)
{
    string cl = password;
    string pwd = "";
    MD5 md5 = MD5.Create(); //实例化一个md5对像
    // 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择 
    byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
    // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
    for (int i = 0; i < s.Length; i++)
    {
        // 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符 
        pwd = pwd + s[i].ToString("X");
    }
    return pwd;
}

DES加解密:

        /// <summary>
        /// Des ecb encrypt, ecb no need iv
        /// </summary>
        /// <param name="encryptString">待加密字符串</param>
        /// <param name="sKey">加密密钥</param>
        /// <returns></returns>
        public static string DesEncrypt_ECB(string encryptString, string sKey)
        {
            try
            {
                string key;
                //密钥为8位
                if (sKey.Length <= 8)
                    key = sKey.PadRight(8, '0');
                else
                    key = sKey.Substring(0, 8);

                byte[] keyBytes = Encoding.UTF8.GetBytes(key);
                byte[] encryptBytes = Encoding.UTF8.GetBytes(encryptString);

                DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider
                {
                    // 使用ECB方式
                    Mode = CipherMode.ECB,
                    // PKCS7padding
                    Padding = PaddingMode.PKCS7,
                    Key = keyBytes
                };

                using MemoryStream memStream = new MemoryStream();
                using CryptoStream crypStream = new CryptoStream(memStream, desProvider.CreateEncryptor(), CryptoStreamMode.Write);
                
                crypStream.Write(encryptBytes, 0, encryptBytes.Length);
                crypStream.FlushFinalBlock();
                
                return Convert.ToBase64String(memStream.ToArray());
            }
            catch(Exception ex)
            {
                return ex.Message;
            }
        }


        /// <summary>
        /// Des ecb decrypt
        /// </summary>
        /// <param name="decryptString"></param>
        /// <param name="sKey"></param>
        /// <returns></returns>
        public static string DesDecrypt_ECB(string decryptString, string sKey)
        {
            //key为8位
            string key;
            if (sKey.Length <= 8) 
                key = sKey.PadRight(8, '0');
            else
                key = sKey.Substring(0, 8);

            byte[] keyBytes = Encoding.UTF8.GetBytes(key);

            byte[] inputByteArray = Convert.FromBase64String(decryptString);

            DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider
            {
                Mode = CipherMode.ECB,
                Key = keyBytes
            };

            using MemoryStream memStream = new MemoryStream();
            using CryptoStream crypStream = new CryptoStream(memStream, desProvider.CreateDecryptor(), CryptoStreamMode.Read);
            
            crypStream.Write(inputByteArray, 0, inputByteArray.Length);
            crypStream.FlushFinalBlock();

            return Encoding.Default.GetString(memStream.ToArray());
        }

 

【进阶之路】SM4国密算法与实现 一、起因 最近在工作中,突然一个交易异常缓慢,调用时间高达40wms,严重影响了整个集群的生产效率。得知这个情况,我开始对整个交易进行剖析,最终发现原来是RSA非对称加密算法的锅。 RSA作为一种非对称的加密算法,其中很重要的一特点是当数据在网络中传输时,用来加密数据的密钥并不需要也和数据一起传送。因此,这就减少了密钥泄露的可能性。RSA在不允许加密方解密数据时也很有用,加密的一方使用一个密钥,称为公钥,解密的一方使用另一个密钥,称为私钥,私钥需要保持其私有性。 RSA非常安全,但是效率却很低,本身的秘 阅读详情

相关推荐

sm4算法 cbc模式

class SM4 { const SM4_CK = [ 0x00070e15, 0x1c232a31, 0x383f464d, 0x545b6269, 0x70777e85, 0x8c939aa1, 0xa8afb6bd, 0xc4cbd2d9, 0xe0e7eef5, 0xfc030a11, 0x181f262d, 0x343b4249, 0x50575e65, 0x6c737a81, 0x888f969d, 0xa4abb2b9,

qq_35205800的博客 6471

SM4 加密 No such algorithm: SM4/ECB/PKCS7Padding 解决jar冲突后问题还没有解决

SM4 加密 No such algorithm: SM4/ECB/PKCS7Padding 解决jar冲突后问题还没有解决 sm4加解密 本地没问题,线上出现问题 百度很多帖子 都说是jar冲突,删除bcprov-jdk14-140.jar 或者 bcprov-jdk15-140.ja 等jar之后问题可以解决 但实际问题还存在 goole之后,找到解决方案,在此基础上还需要 修改配置 修改JDK 配置 $JAVA_HOME/jre/lib/security/java.security 修改为 s

weixin_38127258的博客 1万+

C#与JavaScript AES跨平台加解密:CBC模式与PKCS7填充实战指南

对称加密是数据安全传输与存储的基石,其核心原理在于使用同一密钥进行加解密,效率高且适用于大量数据处理。AES(高级加密标准)作为当前全球通用的对称加密算法,通过代换-置换网络结构,提供了128、192和256位三种可配置的密钥长度,其中256位是商业应用的黄金标准,确保了强大的加密强度。其技术价值在于为跨平台、跨语言的数据安全交互提供了可靠且高效的解决方案,尤其是在C#后端与JavaScript前端协作的典型场景中。要实现一致的加解密结果,关键在于统一核心参数:必须采用CBC模式以引入初始向量(IV)来增强

weixin_30617695的博客 353

C语言实现DES+EBC+PKSC5/PKSC7加解密算法详解

C语言实现DES+EBC+PKSC5/PKSC7加解密算法详解

4688

C#实战:SM4国密算法CBC模式完整封装与常见问题解析

对称加密是保障数据机密性的核心技术,其原理是使用同一密钥进行加密和解密,确保信息传输的私密性。在众多对称加密算法中,国密SM4作为我国自主设计的商用密码标准,采用128位分组长度和32轮迭代结构,通过S盒非线性变换和轮函数线性变换实现高强度安全防护。相较于国际通用的AES算法,SM4在特定场景下展现出同等甚至更优的安全性能,尤其适用于金融、政务等对数据安全有严格要求的行业。在实际工程应用中,分组密码需要结合工作模式(如CBC)和填充方案(如PKCS7)才能处理任意长度的数据流。本文聚焦于SM4算法在C#中的

weixin_27199085的博客 314

C#上位机与下位机通信数据加密与安全传输方案设计与实现

在工业自动化与物联网系统中,上位机与下位机之间的数据通信是核心环节。为确保通信安全,需从基础密码学原理入手,理解对称加密与非对称加密的差异与适用场景。对称加密如AES算法速度快,适合大量数据传输,但密钥分发存在风险;非对称加密如RSA解决了密钥交换问题,但计算开销大。混合加密体系结合两者优势,在连接建立阶段使用非对称加密安全交换会话密钥,在数据传输阶段使用对称加密保障效率,这正是TLS/SSL等主流安全协议的核心思想。在工控、设备监控等应用场景中,这种方案能有效防御窃听、篡改、伪装等威胁,保障控制指令与工艺

weixin_30379531的博客 381

C# DES加解密ECB模式

C# DES加解密ECB模式

qq_36779298的博客 893

Java项目AES加密实战:Hutool Crypto模块详解与最佳实践

数据加密是保障信息安全的核心技术之一,其中AES(高级加密标准)作为广泛应用的对称加密算法,通过分组密码和密钥扩展机制,为数据提供了可靠的机密性保护。其技术价值在于平衡了安全性与性能,成为保护敏感信息(如用户凭证、支付数据、配置文件)的事实标准。在实际工程中,直接使用Java原生API实现AES加密涉及密钥生成、模式选择、填充处理及字节编码转换等多个繁琐环节,代码冗余且易错。Hutool的Crypto模块通过高度封装的API,将AES加密的**核心参数**(如密钥、IV、加密模式、填充模式)的配置与管理标准

chunqingtai2922的博客 444

python调用库函数用ecb模式加密图片_使用aespython进行ECB加解密示例

CBC示例:from aespython import cbc_mode, key_expander, aes_cipherkey = 'MluJMEZegVmrnWDaBiG1j7lqpkxNHh1v'key = map(ord, key)iv = 'cQUD1NUWNj0inTFp'iv = map(ord, iv)data = '9KWIuca1KKkB1Rna'cipher = aes_...

weixin_39649965的博客 594

基于C#的文件夹加密系统设计与实现

在数字化信息日益增长的今天,数据安全已成为个人与企业不可忽视的核心议题。文件夹作为组织和存储大量敏感数据的基本单元,其安全性直接关系到用户隐私与系统完整性。C#作为一种功能强大且高度集成的编程语言,在Windows平台下具备得天独厚的优势,尤其适合开发本地化的安全工具。本章将系统性地介绍C#文件夹加密系统的整体架构设计思想,明确其核心目标——通过加密技术实现对指定文件夹内容的机密性保护,防止未经授权的访问、篡改或泄露。我们将探讨该系统所依赖的技术基础,包括.NET框架的安全类库支持(如。

weixin_35257663的博客 1204

AES128加密实战:从证件号加密到GCM/CTR模式跨语言应用

对称加密是现代数据安全的核心技术,AES作为高级加密标准,通过分组与密钥长度的配合实现高强度保护。在AES128、AES192与AES256中,AES128凭借足够的安全余量与优异的性能成为商业项目首选。实际落地时,加密模式的选择决定安全边界:ECB存在模式泄露风险,CBC依赖IV与填充,CTR适合流式数据且可并行处理,GCM则在CTR基础上加入完整性校验,是当前最稳健的方案。针对Java加密证件号码、SQL Server调用C# DLL实现AES/CTR/NoPadding、Unity中AES GCM模式

weixin_29322855的博客 316

C#实战:国密SM4/ECB/PKCS7Padding加密在数据安全传输中的应用

本文详细介绍了如何在C#中使用国密SM4算法,结合ECB模式和PKCS7Padding填充,实现数据的安全加密与传输。通过BouncyCastle库的实战代码演示,从基础加密解密到文件传输工具构建,深入解析了SM4/ECB/PKCS7Padding的技术原理、适用场景及与CBC模式的对比,为开发者在金融、政务等高安全需求场景下的数据保护提供了即用方案。

jump7的博客 409

干法刻蚀工艺进阶:如何通过调节DC自偏压优化刻蚀速率和各向异性

本文深入探讨了干法刻蚀工艺中DC自偏压的精细调控艺术。DC自偏压是影响刻蚀速率和各向异性的关键因素,文章通过实战案例,详细分析了如何通过调节射频功率、频率、腔室压力及气体成分等参数,间接而有效地控制DC自偏压,从而优化高深宽比硅沟槽等复杂结构的刻蚀效果,实现工艺性能的精准提升。

weixin_28308325的博客 327

C#、Golang、Python、Java(Android)之间Des、Rsa加解密互通系列之前言

前言 最近项目需要写一个接口,返回两个参数,一个参数使用Rsa非对称加密,解密出对称加密用的密钥,另一个参数使用Des进行对称加密。虽然功能不难,但是在多语言之间实现对称、非对称加密互通,也确实费了些力气,觉得该记录下来。 对称加密Des 实现Des对称加密在多语言互通需要注意以下几点: 字符编解码统一使用 UTF-8 密码模式统一使用 CBC 填充方式统一使用 PKCS5Padding 非对...

lhtzbj12的专栏 809

【74HC595芯片】核心驱动代码

74HC595是一个8位串行输入、并行输出的位移缓存器:并行输出为三态输出。在SCK 的上升沿,串行数据由SDL输入到内部的8位位移缓存器,并由Q7’输出,而并行输出则是在LCK的上升沿将在8位位移缓存器的数据存入到8位并行输出缓存器。当串行数据输入端OE的控制信号为低使能时,并行输出端的输出值等于并行输出缓存器所存储的值。

weixin_67147824的博客 1847

Cadence Virtuoso VIVA波形分析:从背景色修改到线宽调整的完整指南

本文详细介绍了Cadence Virtuoso VIVA波形分析工具的核心使用技巧,包括背景色修改、线宽调整等高级功能。通过具体操作步骤和配置方法,帮助工程师优化波形显示效果,提升工作效率。特别强调了与Calculator组件的配合使用,以及专业波形图的输出技巧。

weixin_27330481的博客 621

图解DES、3DES与AES加密算法:从原理到跨语言实现避坑指南

对称加密算法是信息安全领域的基石技术,它通过同一密钥实现数据的加密与解密,保障了数据传输和存储的机密性。其核心原理基于混淆与扩散两大设计思想,通过多轮迭代的替换和置换操作,将明文转化为看似随机的密文。这项技术的核心价值在于为各类应用提供了高效可靠的数据保护机制,广泛应用于网络通信、金融交易、文件加密等场景。在实际工程实践中,开发者常会遇到诸如`aes decrypt error`、`BadPaddingException`等典型问题,这往往与算法模式、填充方式或密钥处理等配置细节密切相关。本文将以图解方式,

weixin_33695082的博客 377

AirSim安装和地图加载

详细教程如何安装AirSim并加载地图

fegxg的博客 3033

Java DES加密算法详解:原理、实现、安全缺陷与迁移指南

对称加密是信息安全的基础,它使用同一密钥进行数据的加密与解密,保障了通信的机密性。其核心原理在于通过复杂的数学变换和密钥调度,将可读的明文转换为不可读的密文。DES(数据加密标准)作为首个被广泛采用的对称分组加密算法,其经典的Feistel网络结构和S盒设计,为理解现代加密技术(如AES)奠定了基石。尽管DES因其56位短密钥已不再适用于现代安全场景,面临被暴力破解的风险,但其在**遗留系统维护**和**密码学教育**中仍有特定价值。对于Java开发者而言,掌握`javax.crypto`包中对DES的实现

weixin_33850890的博客 353

Unity中5分钟实现3D高斯泼溅渲染:从原理到实战部署

3D高斯泼溅(3D Gaussian Splatting)是一种新兴的神经渲染技术,它通过显式地使用大量3D高斯椭球来表示场景,革新了传统的体渲染和神经辐射场(NeRF)方法。其核心原理是将这些3D高斯投影到2D屏幕并进行快速光栅化与Alpha混合,从而绕过了耗时的光线步进,实现了极高的渲染效率。这项技术的价值在于,它能够在消费级GPU上达到实时甚至超实时的帧率,同时保持紧凑的数据表达和惊人的视觉细节,极大地降低了高质量3D重建与渲染的门槛。在应用场景上,它正快速渗透到数字孪生、虚拟现实、文化遗产数字化以及

weixin_29474431的博客 274

HyperLynx(二十二)DDR(五)DDRx总线时序模型设计

DDR3 的数据选通信号与时钟信号的频率是一样的,在数据选通信号写操作时,控制器典型的输出方式是数据选通信号边沿与时钟近似对齐。该界面中显示了所有需要编辑的参数,包括地址/命令信号的时序、控制信号的时序、读和写操作的数据选通和数据信号时序、写操作的数据选通和数据掩码信号时序,以及建立和保持时间的降额参数。由于DDRx总线对时序的要求非常严格,随着速率的提升,时序的要求会更高。反之也是一样的,如果数据选通信号的上升沿在时钟信号上升沿的后面到达 DRAM,那么数据选通信号的下降沿就会在时钟信号的前面到达。

小幽余生不加糖 1936

C#文件加密实战:AES算法原理与安全实现详解

在软件开发中,数据安全是核心议题,尤其涉及本地敏感数据存储时。对称加密算法通过同一密钥进行加解密,兼顾效率与安全性,是保护数据机密性的基础技术。AES作为当前主流标准,其CBC模式配合随机IV能有效抵御模式分析攻击,而PKCS7填充则确保数据块完整。在工程实践中,结合PBKDF2密钥派生函数,可从用户密码安全生成高强度密钥,有效应对暴力破解。这一技术组合广泛应用于客户端软件许可证保护、本地缓存加密及配置文件安全等场景,例如在C#上位机开发中保障数据传输安全,或在文件复制过程中实现内容保密。本文通过完整代码示

weixin_34080951的博客 403

2023年高教社杯全国大学生数学建模竞赛 E 题:《黄河水沙监测数据分析》真题解析与 MATLAB 解决方案

🏆 本文已收录于专栏:《滚雪球学数学建模(含历年真题)》,持续更新最新及历年数学建模竞赛资料,每篇内容力求做到“问题讲透、模型讲清、代码可用、论文可参考”,帮助你从零开始逐步建立完整的数学建模知识体系。

**My Coding Family** 904

React前端DES/3DES加密实战:CryptoJS集成与安全实践指南

对称加密是保障数据传输机密性的基础技术,其核心原理是使用相同的密钥进行加密和解密。DES和3DES作为经典的对称加密算法,在理解加密原理和特定兼容性场景中仍有应用价值。在前端工程实践中,通过JavaScript库实现加密功能,能够为敏感数据交互增加额外安全层,尤其适用于对接遗留系统或满足特定数据安全规范的场景。本文聚焦于在React项目中,如何利用CryptoJS库安全、高效地集成DES与3DES算法,涵盖从密钥管理、CBC模式与PKCS7填充的应用,到性能优化及与后端交互的完整流程,为开发者提供一套兼顾安

weixin_34146805的博客 329

【华为OD机考真题】- 斗地主之顺子(B卷-200分)(Java版)

🔔本文收录于「最新最全华为OD机试真题(Java版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!专栏所写题库均精心搜集于互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验所撰,欢迎订阅。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新

**My Coding Family** 815

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C#实现AES文件加密解密工具:原理、代码与实战优化

对称加密是数据安全领域的核心技术,它使用同一密钥进行加密和解密,具有速度快、效率高的特点,尤其适合处理大文件。AES(高级加密标准)作为目前国际通用的对称加密算法,在安全性和性能上达到了良好平衡,广泛应用于文件保护、通信安全等场景。其技术价值在于通过标准化的加密流程,为各类数据提供可靠的机密性保障。在实际工程实践中,结合CBC加密模式和PKCS7填充模式,可以构建出既安全又兼容的文件加密方案。本文以C# WinForm开发为例,深入探讨如何利用AES算法实现一个通用的文件加密解密工具,涵盖密钥派生、IV管理

weixin_33849215的博客 354

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: C# 枚举扩展方法
下一篇: Sql server 索引碎片
行者僧
博客等级 码龄11年 67粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值