首页 > 编程语言 >用C#实现DES加密解密

用C#实现DES加密解密

时间:2023-09-27 18:11:48浏览次数:54  
标签:... inputByteArray string keyBytes C# DES 解密 new byte

using  System; 
 using  System.Security.Cryptography; 
 using  System.Text; 
 using  System.IO; 
  
 namespace  Common 
 ...{ 
         /** <summary> 
          /// DESEncrypt加密解密算法。 
          /// </summary> 
          public   sealed   class  DESEncrypt 
         ...{ 
                  private  DESEncrypt() 
                 ...{ 
                          // 
                          // TODO: 在此处添加构造函数逻辑 
                          // 
                 } 
  
                  private   static   string  key =  "zhoufoxcn" ; 
  
                 /** <summary> 
                  /// 对称加密解密的密钥 
                  /// </summary> 
                  public   static   string  Key 
                 ...{ 
                         get 
                         ...{ 
                                  return  key; 
                         } 
                         set 
                         ...{ 
                                 key = value; 
                         } 
                 } 
  
                 /** <summary> 
                  /// DES加密 
                  /// </summary> 
                  /// <param name="encryptString"></param> 
                  /// <returns></returns> 
                  public   static   string  DesEncrypt( string  encryptString) 
                 ...{ 
                          byte [] keyBytes = Encoding.UTF8.GetBytes(key.Substring(0, 8)); 
                          byte [] keyIV = keyBytes; 
                          byte [] inputByteArray = Encoding.UTF8.GetBytes(encryptString); 
                         DESCryptoServiceProvider provider =  new  DESCryptoServiceProvider(); 
                         MemoryStream mStream =  new  MemoryStream(); 
                         CryptoStream cStream =  new  CryptoStream(mStream, provider.CreateEncryptor(keyBytes, keyIV), CryptoStreamMode.Write); 
                         cStream.Write(inputByteArray, 0, inputByteArray.Length); 
                         cStream.FlushFinalBlock(); 
                          return  Convert.ToBase64String(mStream.ToArray()); 
                 } 
  
                 /** <summary> 
                  /// DES解密 
                  /// </summary> 
                  /// <param name="decryptString"></param> 
                  /// <returns></returns> 
                  public   static   string  DesDecrypt( string  decryptString) 
                 ...{ 
                          byte [] keyBytes = Encoding.UTF8.GetBytes(key.Substring(0, 8)); 
                          byte [] keyIV = keyBytes; 
                          byte [] inputByteArray = Convert.FromBase64String(decryptString); 
                         DESCryptoServiceProvider provider =  new  DESCryptoServiceProvider(); 
                         MemoryStream mStream =  new  MemoryStream(); 
                         CryptoStream cStream =  new  CryptoStream(mStream, provider.CreateDecryptor(keyBytes, keyIV), CryptoStreamMode.Write); 
                         cStream.Write(inputByteArray, 0, inputByteArray.Length); 
                         cStream.FlushFinalBlock(); 
                          return  Encoding.UTF8.GetString(mStream.ToArray()); 
                 } 
         } 

 

标签:...,inputByteArray,string,keyBytes,C#,DES,解密,new,byte
From: https://www.cnblogs.com/itjeff/p/17733346.html

相关文章

  • 腾讯云 Cloud Studio 实战训练营结营&活动获奖公示
    点击链接了解详情“腾讯云CloudStudio实战训练营”是由腾讯云联合CSDN推出的系列开发者技术实践活动,通过技术分享直播、动手实验项目、优秀代码评选、有奖征文活动等,让广大开发者沉浸式体验腾讯云开发者工具CloudStudio的同时,实现技术实战能力提升。本次实战训练营活......
  • CSP模拟46
    开题顺序3-2-1-4,感觉这套题挺草的。T1染色(color)将限制看成边。考虑质数集中只有一个偶质数\(2\),只考虑这条限制,对\(i\toi+2\)连边,发现是两条不相交的链,一条上的数都是奇数,另一条则都是偶数。对于一条链只需要使用两种颜色。然后其他的质数都是奇数,则其他限制一定是从......
  • .NET Core|--调用C++库|--LibraryImport docker环境下,处理依赖问题--GCC--Docker
    前言万恶之源在于,C#程序中需要调用C++的一个函数库,在Windows环境下,只要保证引用的相关dll存在,就是ok的,但是在Linux环境下,并且我的Webapi程序是部署在docker中的,问题就比较麻烦一些.经历了新建软链接,缺失".so"文件,有了".so"文件后,版本错误:libstdc++.so.......
  • 2023年台州市初赛Misc
    2023年台州市初赛Misc这是神马冰蝎流量,找到key<?php@error_reporting(0);session_start();$key="144a6b2296333602";$_SESSION['k']=$key;session_write_close();$post=file_get_contents("php://input");i......
  • Redis可视化工具:Another Redis Desktop Manager
    Redis可视化工具:AnotherRedisDesktopManager一、介绍AnotherRedisDesktopManager(简称:RedisDesktopManager或RDM)是一个Redis数据库的可视化管理工具。它是一个跨平台的桌面应用程序,能够让用户更轻松地与Redis进行交互和管理。更快、更好、更稳定的Redis桌面(GUI)管理客户......
  • [转载] linux下 GCC编译链接静态库&动态库
    转载自:https://www.cnblogs.com/thechosenone95/p/10605172.html#_label0静态库有时候需要把一组代码编译成一个库,这个库在很多项目中都要用到,例如libc就是这样一个库,我们在不同的程序中都会用到libc中的库函数(例如printf),也会用到libc中的变量(例如以后要讲到的environ变量)。......
  • ajax调用后台controller方法时报415 (Unsupported Media Type)错误
    spring mvc 下,ajax调用后台controller方法时报415(UnsupportedMediaType)错误错误:ajax的post方法调用后台controller方法时报错:415(UnsupportedMediaType)。下面是错误时的代码前端:varurl=“xxx/xxQuery.action”;var params={year:‘2017’}ajax(url,params,functio......
  • linux上如何使用docker部署前后端分离项目(含部署多个前端页面的方法)
    (目录)前言使用前一段时间写的前后端分离开发的简单小项目,确保本地可以启动部署所需镜像汇总mysql镜像2.后端工程自定义镜像3.nginx镜像<fontcolor=red>下面介绍部署过程</font>一、mysql镜像(1)拉取mysql镜像选择使用的mysql版本,我用的是8.0.33dockerpullmysql......
  • Sovit2D组态设计 Web Scada烟气脱硫工艺流程
    前言我国是燃煤大国,燃煤排放的SO₂成为影响我国城市空气质量的主要污染物。因此,锅炉烟气脱硫是减排SO₂的重要手段。建设背景在节能减排的大形势下,钢厂、电厂等烟气脱硫是完成二氧化硫减排任务的重点工作之一。烟气脱硫系统具有很高的复杂性,目前很多脱硫系统出现运行故障多、不能......
  • 使用 Spring 3 来创建 RESTful Web Services
    引言RoyFielding是HTTP1.0和1.1标准的主要作者之一,2000年,他在他的博士论文中首次提出了REST。通过REST风格体系架构,请求和响应都是基于资源表示的传输来构建的。资源是通过全局ID来标识的,这些ID一般使用的是一个统一资源标识符(URI)。客户端应用使用HTT......