• C# DES


    DES加密

    using System.Security.Cryptography;

    和AES一样只知道 ECB CBC CFB模式的用法

     static class MyDES
        {
            static PaddingMode[] padding = {
                PaddingMode.PKCS7,
                PaddingMode.ANSIX923,
                PaddingMode.ISO10126,
                PaddingMode.None,
                PaddingMode.Zeros
            };
            static public string Encrypt(string Message, string key,string IV, CipherMode Mode,int pad)
            {
                try
                {
    
                    byte[] keyBytes = Encoding.UTF8.GetBytes(key);
                    byte[] keyIV = Encoding.UTF8.GetBytes(IV); 
                    byte[] inputByteArray = Encoding.UTF8.GetBytes(Message);
    
                    DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider();
    
                    // java 默认的是ECB模式,PKCS5padding;c#默认的CBC模式,PKCS7padding 所以这里我们默认使用ECB方式
                    desProvider.Mode = Mode;
                    desProvider.Padding = padding[pad];
                    MemoryStream memStream = new MemoryStream();
                    CryptoStream crypStream = new CryptoStream(memStream, desProvider.CreateEncryptor(keyBytes, keyIV), CryptoStreamMode.Write);
    
                    crypStream.Write(inputByteArray, 0, inputByteArray.Length);
                    crypStream.FlushFinalBlock();
                    return Convert.ToBase64String(memStream.ToArray());
    
                }
                catch
                {
                    MessageBox.Show("加密失败");
                    return "";
                }
    
            }
           
            static public string Decrypt(string Message, string key, string IV, CipherMode Mode,int pad)
            {
                try
                {
                    byte[] keyBytes = Encoding.UTF8.GetBytes(key);
                    byte[] keyIV = Encoding.UTF8.GetBytes(IV);
                    byte[] inputByteArray = Convert.FromBase64String(Message);
    
                    DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider();
    
                    // java 默认的是ECB模式,PKCS5padding;c#默认的CBC模式,PKCS7padding 所以这里我们默认使用ECB方式
                    desProvider.Mode = Mode;
                    desProvider.Padding = padding[pad];
                    MemoryStream memStream = new MemoryStream();
                    CryptoStream crypStream = new CryptoStream(memStream, desProvider.CreateDecryptor(keyBytes, keyIV), CryptoStreamMode.Write);
    
                    crypStream.Write(inputByteArray, 0, inputByteArray.Length);
                    crypStream.FlushFinalBlock();
                    return Encoding.Default.GetString(memStream.ToArray());
                }
                catch {
                    MessageBox.Show("解密失败");
                    return "";
                }
    
            }
           
        }
    MyDES
  • 相关阅读:
    3. docker-compose实战--ghost app
    3. nacos服务发现
    1. nacos初识, 和eureka的比较, 在docker上安装nacos
    2.nacos服务配置中心
    如何将PHP对象数组转换成普通数组
    php 通过变量 来调用函数
    linux svn
    Sublime text 3安装svn插件
    php 字符串 定界符 json_last_error()
    centos7 rm -rf 删除文件的找回
  • 原文地址:https://www.cnblogs.com/xzhblogs/p/5799019.html
Copyright © 2020-2023  润新知