C# 3DES 加密

article/2025/9/16 16:36:43
    public class DESHelper{#region 3des加密/// <summary>/// 3des ecb模式加密/// </summary>/// <param name="aStrString">待加密的字符串</param>/// <param name="aStrKey">密钥</param>/// <param name="iv">加密矢量:只有在CBC解密模式下才适用</param>/// <param name="mode">运算模式</param>/// <returns>加密后的字符串</returns>public static string Encrypt3Des(string aStrString, string aStrKey, CipherMode mode = CipherMode.ECB, string iv = "12345678"){try{var des = new TripleDESCryptoServiceProvider{Key = Encoding.UTF8.GetBytes(aStrKey),Mode = mode};if (mode == CipherMode.CBC){des.IV = Encoding.UTF8.GetBytes(iv);}var desEncrypt = des.CreateEncryptor();byte[] buffer = Encoding.UTF8.GetBytes(aStrString);buffer = Encoding.Convert(Encoding.GetEncoding("UTF-8"), Encoding.GetEncoding("GB2312"), buffer);return Convert.ToBase64String(desEncrypt.TransformFinalBlock(buffer, 0, buffer.Length));}catch (Exception e){return string.Empty;}}#endregion#region 3des解密/// <summary>/// des 解密/// </summary>/// <param name="aStrString">加密的字符串</param>/// <param name="aStrKey">密钥</param>/// <param name="iv">解密矢量:只有在CBC解密模式下才适用</param>/// <param name="mode">运算模式</param>/// <returns>解密的字符串</returns>public static string Decrypt3Des(string aStrString, string aStrKey, CipherMode mode = CipherMode.ECB, string iv = "12345678"){try{var des = new TripleDESCryptoServiceProvider{Key = Encoding.UTF8.GetBytes(aStrKey),Mode = mode,Padding = PaddingMode.PKCS7};if (mode == CipherMode.CBC){des.IV = Encoding.UTF8.GetBytes(iv);}var desDecrypt = des.CreateDecryptor();var result = "";byte[] buffer = Convert.FromBase64String(aStrString);result = Encoding.UTF8.GetString(desDecrypt.TransformFinalBlock(buffer, 0, buffer.Length));return result;}catch (Exception e){return string.Empty;}}#endregion}


测试:注意key字符长度为24

        static void Main(string[] args){//IVstring IV = "20160120";//KEYstring KEY = "012345678901234567891234";//data json stringstring dataJsonString = "TEST";Console.WriteLine("加密之前:"+ dataJsonString);//3des 加密string Encrypt3Des = DESHelper.Encrypt3Des(dataJsonString, KEY, CipherMode.CBC, IV);Console.WriteLine("加密之后:" + Encrypt3Des);//3des 解密string Decrypt3Des = DESHelper.Decrypt3Des(Encrypt3Des, KEY, CipherMode.CBC, IV);Console.WriteLine("解密密之后:" + Decrypt3Des);Console.ReadKey();}



http://chatgpt.dhexx.cn/article/EPXQttbs.shtml

相关文章

3DES加密

最近需要对外对接部分接口&#xff0c;用到了3DES加密&#xff0c;便顺手整理一下逻辑和python实现。 DES 对称加密算法。DES算法的入口参数有三个&#xff1a;Key、Data、Mode。其中Key为7个字节共56位&#xff0c;是DES算法的工作密钥&#xff1b;Data为8个字节64位&#xff…

DES对称加密及三重DES(3DES)

一、DES 1 概述 DES算法全称为Data Encryption Standard&#xff0c;即数据加密算法&#xff0c;它是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个&#xff1a;Key、Data、Mode。其中Key为8个字节共64位&#xff0c;是DES算法的工作密钥&#xff1b;Data也为…

3DES加密算法原理及实现

目录 引语 加密 加密算法公式 为什么采用加密-解密-加密的形式 解密 代码实现 注意&#xff1a;3DES是3重DES加解密算法&#xff0c;具体原理同DES,不在赘述。 引语 DES算法是全网公开的&#xff0c;其安全性是依靠秘钥的&#xff0c;但是随着计算机算力的增长&#xff…

3DES加密算法原理

一、3DES加密算法简析&#xff1a; 3DES&#xff0c;也称为 3DESede 或 TripleDES&#xff0c;是三重数据加密算法&#xff0c;相当于是对每个数据库应用三次DES的对称加密算法。 由于DES密码长度容易被暴力破解&#xff0c;所以3DES算法通过对DES算法进行改进&#xff0c;增…

简述3DES加密算法

之前我们聊了DES加密算法&#xff0c;在文章的最后我们提到了人们为了克服DES加密算法的不足&#xff0c;提出了三重DES&#xff0c;也就是3DES&#xff0c;今天我们就来简单了解一下它。 什么是3DES&#xff1f; 3DES&#xff0c;也称为3DESede或TripleDES&#xff0c;是三重数…

图解DES、3DES和AES加密算法

文章目录 一、DES1. 加密和解密2. DES的结构(Feistel网络) 二、3DES1. 3DES加密2. 3DES解密 三、AES1. AES最终候选算法和算法确定2. Rijndael2.1 什么是Rijndael2.2 Rijndael的加密和解密 3. AES密钥生成4. AES算法流程图 一、DES 1. 加密和解密 DES是一种将64bit的明文加密…

ArcGIS版本高级应用 数据归档(历史归档 存档数据)

QQ交流群&#xff1a;607330463 GIS开发技术最强交流群 未经允许 禁止转载 可以参考 目录 1地理数据库 (Geodatabase) 存档 2启用存档 3存档过程 4使用历史版本 5使用历史标记 6使用地理数据库历史查看器 7直接使用存档类 8架构更改和存档 9禁用存档 10存档情景…

文件归档功能

在帮助大家运维EDI平台的这几年中&#xff0c;常常有些客户反馈为什么之前发送的数据页面上都没有了呢&#xff1f;我想查询下之前的数据是否有成功发送给我们的客户应该怎么确认呢&#xff1f;业务数据量太大&#xff0c;文件占用磁盘空间太多&#xff0c;我如何快速地确认一些…

如何创建归档?

首先这里我们先了解两个概念归档和压缩&#xff0c;归档就相当于将文件批量打包在一块&#xff0c;便于之后工作查找文件的位置&#xff0c;但是总体文件的大小是不变的&#xff0c;例如我们将10个不通路径下且每个大小都是10M的文件打包在一块&#xff0c;那么归档后的大小就是…

大数据归档-冷热数据分离

1. 什么是TokuDB&#xff1f; TokuDB 是一个支持事务的“新”引擎&#xff0c;有着出色的数据压缩功能&#xff0c;由美国 TokuTek 公司&#xff08;现在已经被 Percona 公司收购&#xff09;研发。拥有出色的数据压缩功能&#xff0c;如果您的数据写多读少&#xff0c;而且数…

数据归档,存储的完美储备军

数据爆炸性增长的同时&#xff0c;存储成为了大家首要担心的问题 大家都希望自家数据保存20年、50年后仍完好无损 但是&#xff0c;N年后的数据量已达到一个无法预测的峰值 如此大量的数据在保存时极可能存在丢失、损坏等问题 这时需要提前对数据进行“备份”、“归档” 备份是…

oracle数据库归档模式修改ARCHIVELOG

oracle数据库归档模式修改ARCHIVELOG 一、查看当前数据库的归档模式 第一步&#xff1a;查看oracle数据库的归档模式 命令如下&#xff1a;&#xff08;该命令登录sys用户可查&#xff09; select log_mode from v d a t a b a s e ; 如 果 值 为 N O A R C H I V E L O G &am…

数据归档神器-pt-archiver

前言介绍 pt-archiver是用来归档表的工具&#xff0c;可以做到低影响、高性能的归档工具&#xff0c;从表中删除旧数据&#xff0c;而不会对 OLTP 查询产生太大影响。可以将数据插入到另一个表中&#xff0c;该表不需要在同一台服务器上。可以将其写入适合 LOAD DATA INFILE 的…

从MYSQL 数据库归档 到 归档设计

到数据归档&#xff0c;很多人的第一个概念就是&#xff0c;不就是无用的数据&#xff0c;换个地方放吗&#xff0c;直接拷贝&#xff0c;删除不就得了&#xff0c;有那么麻烦。 我见到过的&#xff0c;听到过的数据库归档的方法有以下几种 1 数据通过人工的手段来进行清理&am…

数据存储领域的“归档Archive”

档案圈的朋友想必对档案领域的“归档”一词已经耳熟能详&#xff0c;按照DA/T 58-2014《电子档案管理基本术语》中的定义&#xff0c;归档&#xff08;Archiving&#xff09;是指“按照国家规定将具有保存价值的电子文件及其元数据的保管权交给档案部门的过程”。 今天我们要聊…

那些年跟领导聊过的数据归档【DB篇】:从梳理到落地-DB单表千万级归档详细流程讲解

文章目录 知人论世执笔蓝图V1 - 浅尝辄止V2 - 初窥门镜V3 - 木已成舟 躬行方案安内攘外 卓有成效沉淀之石道阻且长 知人论世 无论何种需求的出现都是因为某种迫切解决的问题契机&#xff0c;它是业务发展中定数也是劫数&#xff0c;近期DBA反馈磁盘存储空间超过80%不足以支撑未…

进来偷学一招,数据归档二三事儿

Hello&#xff0c;大家好&#xff0c;我是楼下小黑哥~ 随着业务的快速增长&#xff0c;业务体量变得越来越大&#xff0c;这个过程我们会碰到各种问题&#xff0c;倒逼着我们进行技术升级。 那今天我们来聊下&#xff0c;这个过程将会碰到关于数据的问题。 数据增长带来的烦…

MySQL 归档数据的方法你知道了吗

归档&#xff0c;在 MySQL 中&#xff0c;是一个相对高频的操作。 它通常涉及以下两个动作&#xff1a; 迁移。将数据从业务实例迁移到归档实例。删除。从业务实例中删除已迁移的数据。 在处理类似需求时&#xff0c;都是开发童鞋提单给 DBA&#xff0c;由 DBA 来处理。 于…

7.数据归档(Archiver)

1.归档的基本概念 归档: 是指将数据写入文件存储到程序的沙盒中,当再次重新打开程序时,可以还原这些数据. 称它为数据序列化, 数据持久化. 临时数据: 存储在内存中的数据, 程序关闭, 内存释放,数据丢失数据持久性的方式 1) NSKeyedArchiver—-对象归档 2) NSUserDefaults 3)…

如何用matlab求出矩阵简化阶梯形顺带算出主元所在的列

matlab用rref函数 函数格式 [R,j]rref(A) A是矩阵 R是简化后的阶梯形 j是主元例子&#xff1a;求矩阵A的简化阶梯形与主元所在的列 >> A [1 1 -2 1 4; 2 4 -6 4 8; 2 -3 1 -1 2; 3 6 -9 7 9]; >> [R,j]rref(A)R 1 0 -1 0 40 1 -1 0 …