zoukankan      html  css  js  c++  java
  • 3DES加密解密

    C#3DES加密解密,JAVA、PHP可用

    using System;
    using System.Security.Cryptography;
    using System.Text;
    
    namespace TT.Utilities.Encrypt
    {
        public class DES3
        {
            /// <summary>
            /// utf-8编码
            /// 加密模式ECB,填充类型PKCS7
            /// </summary>
            /// <param name="str_content"></param>
            /// <param name="str_keys">24位key</param>
            /// <returns></returns>
            public static string DES3_Encrypt(string str_content, string str_keys)
            #region
            {
                Encoding encoding = Encoding.UTF8;
    
                byte[] content = encoding.GetBytes(str_content);
                byte[] keys = encoding.GetBytes(str_keys);
    
                TripleDESCryptoServiceProvider tdsc = new TripleDESCryptoServiceProvider();
    
                //指定密匙长度,默认为192位
                tdsc.KeySize = 128;
                //使用指定的key和IV(加密向量)
                tdsc.Key = keys;
                //tdsc.IV = IV;
                //加密模式,偏移
                tdsc.Mode = CipherMode.ECB;
                tdsc.Padding = PaddingMode.PKCS7;
                //进行加密转换运算
                ICryptoTransform ct = tdsc.CreateEncryptor();
                //8很关键,加密结果是8字节数组
                byte[] results = ct.TransformFinalBlock(content, 0, content.Length);
    
                string base64String = Convert.ToBase64String(results);
                return base64String;
            }
            #endregion
    
            /// <summary>
            /// utf-8编码
            /// 加密模式ECB,填充类型PKCS7
            /// </summary>
            /// <param name="base64_content"></param>
            /// <param name="str_keys">24位key</param>
            /// <returns></returns>
            public static string DES3_Decrypt(string base64_content, string str_keys)
            #region
            {
                Encoding encoding = Encoding.UTF8;
    
                byte[] content = Convert.FromBase64String(base64_content);
                byte[] keys = encoding.GetBytes(str_keys);
    
                TripleDESCryptoServiceProvider tdsc = new TripleDESCryptoServiceProvider();
    
                //指定密匙长度,默认为192位
                tdsc.KeySize = 128;
                //使用指定的key和IV(加密向量)
                tdsc.Key = keys;
                //tdsc.IV = IV;
                //加密模式,偏移
                tdsc.Mode = CipherMode.ECB;
                tdsc.Padding = PaddingMode.PKCS7;
                //进行加密转换运算
                ICryptoTransform ct = tdsc.CreateDecryptor();
                //8很关键,加密结果是8字节数组
                byte[] results = ct.TransformFinalBlock(content, 0, content.Length);
    
                string oriString = encoding.GetString(results);
                return oriString;
            }
            #endregion
        }
    }
  • 相关阅读:
    mktemp -t -d用法
    使用getopts处理输入参数
    linux中$1的意思
    linux中的set -e 与set -o pipefail
    在windows 7 和linux上安装xlwt和xlrd
    nginx map使用方法
    Linux crontab下关于使用date命令和sudo命令的坑
    东哥讲义
    ldapsearch使用
    date 命令之日期和秒数转换
  • 原文地址:https://www.cnblogs.com/tongyi/p/8663988.html
Copyright © 2011-2022 走看看