https://www.cnblogs.com/tianma3798/p/8807906.html 感谢这位大哥的代码提示

微软官网的这个示例正的是该换了,一点用处没看出来

https://docs.microsoft.com/zh-cn/dotnet/api/system.security.cryptography.descryptoserviceprovider.-ctor?view=netframework-4.6#System_Security_Cryptography_DESCryptoServiceProvider__ctor

/// <summary>
        /// DES CBC 加密
        /// </summary>
        /// <param name="encryStr"></param>
        /// <param name="key"></param>
        /// <param name="iv"></param>
        /// <returns></returns>
        public static string DesCBCEncryptor(string encryStr,string key,string iv)
        {
            byte[] rgbKey = Encoding.UTF8.GetBytes(key);
            byte[] rgbIV = Encoding.UTF8.GetBytes(iv);
            byte[] inputByteArray = Encoding.UTF8.GetBytes(encryStr);

            DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
            using (MemoryStream mStream = new MemoryStream())
            {
                using (CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write))
                {
                    cStream.Write(inputByteArray, 0, inputByteArray.Length);
                    cStream.FlushFinalBlock();
                    byte[] srteamArray = mStream.ToArray();
                    mStream.Close();
                    mStream.Dispose();
                    return Convert.ToBase64String(srteamArray);
                }
            }
                
        }
        /// <summary>
        /// DES CBC 解密
        /// </summary>
        /// <param name="decryStr"></param>
        /// <param name="key"></param>
        /// <param name="iv"></param>
        /// <returns></returns>
        public static string DesCBCDecryptor(string decryStr, string key, string iv)
        {
            byte[] rgbKey = Encoding.UTF8.GetBytes(key);
            byte[] rgbIV = Encoding.UTF8.GetBytes(iv);
            byte[] inputByteArray = Convert.FromBase64String(decryStr);

            DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
            using (MemoryStream mStream = new MemoryStream())
            {
                using (CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write))
                {
                    cStream.Write(inputByteArray, 0, inputByteArray.Length);
                    cStream.FlushFinalBlock();
                    byte[] srteamArray = mStream.ToArray();
                    mStream.Close();
                    mStream.Dispose();
                    return Encoding.UTF8.GetString(srteamArray);
                }
            }
        }

C# DES (cbc) 加密解密 (最简单的加密解密)的更多相关文章

  1. Android DES加密的CBC模式加密解密和ECB模式加密解密

    DES加密共有四种模式:电子密码本模式(ECB).加密分组链接模式(CBC).加密反馈模式(CFB)和输出反馈模式(OFB). CBC模式加密: import java.security.Key; i ...

  2. java/php DES/CBC/PKCS5Padding加密解密算法实现过程

    先看java代码 public static String encrypt(String message, String key) throws Exception { Cipher cipher = ...

  3. 各种加密解密函数(URL加密解密、sha1加密解密、des加密解密)

    原文:各种加密解密函数(URL加密解密.sha1加密解密.des加密解密) 普通hash函数如md5.sha1.base64等都是不可逆函数.虽然我们利用php可以利用这些函数写出可逆函数来.但是跨语 ...

  4. 在IOS中使用DES算法对Sqlite数据库进行内容加密存储并读取解密

    在IOS中使用DES算法对Sqlite 数据库进行内容加密存储并读取解密 涉及知识点: 1.DES加密算法: 2.OC对Sqlite数据库的读写: 3.IOS APP文件存储的两种方式及读取方式. 以 ...

  5. Java Des加解密方法(c#加密Java解密)

    最近我们用Java把一个用.net编写的老系统重新做了翻版,但是登录还是用.net的登录.这样就会遇到一个比较棘手的问题,我们登录用的cookie信息都是.net用des加密的,但我们不得不用Java ...

  6. Java DES 加解密("DES/CBC/PKCS5Padding")

    /** * DES加密 * * @param data 加密数据 * @param key 密钥 * @return 返回加密后的数据 */ public static byte[] desEncry ...

  7. .Net使用DES加密,.Net和java分别解密,并正则匹配替换加密密码为明文

    在VS中用WindowsApplication做一个exe程序,用来给数据库密码加密,加密代码如下 private void generateBtn_Click(object sender, Even ...

  8. DES加密与解密在GET请求时解密失败的问题

    DES加密与解密在GET请求时解密失败的问题 在数据进行加密后传递会更安全,但可能有个问题:就是Url编码问题,如果不对Url进行编码直接加密,那么在解密时,如果字符串存在 “+”,这种特殊符号,在解 ...

  9. Java实现一个简单的加密解密方法

    Crypto是Java语言写的一个简单的加密解密方法. 使用方法: 加密方法 String cipherte=Enande.encrypt(content, pass): 解密方法 Enande.de ...

  10. OC的DES加密,使与java的Cipher类用DES/CBC/PKCS5Padding方式的加密结果同样

    问题说明: 近期用到DES加密,而且要与java的Cipher类加密的结果保持一致.没研究过java的Cliper,但工作中Cipher依据DES/CBC/PKCS5Padding加密方式生成了一个字 ...

随机推荐

  1. cannot resolve unit......

    Just disable Error Insight (Tools -> Options -> Editor Options -> Code Insight, uncheck Err ...

  2. Crealens.ai 免费体验GPT-4o 生图+吉卜力风格化

    自己的一张日常照片,能在几秒内变身为一幅充满童话感的吉卜力风插画?90%的人不知道,如今只需一句话,就能在 ChatGPT 里实现"AI 生图"--这就是 GPT-4o 生图功能的 ...

  3. Linux基本开发环境配置git,c++,nodejs,nginx

    Linux基本开发环境配置 前一篇文章配置了基本的SSH,本文来讲讲关于基本的开发环境的配置,包括git,c,c++,nodejs,nginx. 安装git和配置无密码登录github yum ins ...

  4. Spring RestTemplate使用方法总结

    1. 引入依赖 首先,需要确认项目中是否直接或者间接引入过spring-web依赖,如果没有引入过,需要在pom.xml中添加以下代码引入依赖: <dependency> <grou ...

  5. 🎀windows-剪切板

    简介 Windows 剪贴板是一个临时存储区域,它允许用户在不同应用程序之间复制和粘贴文本.图像和其他类型的数据.从 Windows 10 开始,微软引入了一个改进的剪贴板功能,称为剪贴板历史记录,它 ...

  6. 想靠RAG提升模型回答质量,那是不可能的

    提供AI咨询+AI项目陪跑服务,有需要回复1 上周写了一篇AI知识库的文章:聊聊与一体机同等级的智商税:AI知识库 事实上,文章对于AI知识库是稍带了点否定的色彩,因为单独的知识库毫无意义,但企业本身 ...

  7. 关于composer报错The openssl extension is required for SSL/TLS protection but is not available问题

    今天使用composer的时候得到了这个错误: The openssl extension is required for SSL/TLS protection but is not availabl ...

  8. MaxKB中如何选择向量模型?

    MaxKB内置的向量模型不足? 在MaxKB中知识文档Emdeding是很重要的一环,而这个过程就必须依赖向量模型.目前MaxKB内置的向量模型为text2vec-base-Chinese,一个针对中 ...

  9. 【记录】ChatGPT|图片预览魔法咒语魔改,使用 ChatGPT 返回大量可以跳转的链接

    很早的时候,我已经留意到 ChatGPT 会以返回图片的 markdown 格式来显示图片,很可能拥有一定的图片上传功能,但是它往往会显示得有些问题.一些代码图片之类的或者风景图什么的都不是很会. 但 ...

  10. codeup之杨辉三角

    Description 按要求输入如下格式的杨辉三角 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 最多输出10层 Input 输入只包含一个正整数n,表示将 ...