• 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
        }
    }
  • 相关阅读:
    Qt下如何修改文件的时间(全平台修改)
    Qt在windows 平台操作保存execel的表格(通过QAxObject来操作)
    VirtualTreeView控件
    VS2013设置release版本可调试
    工程脚本插件方案
    decode函数
    一个消息调度框架构建
    数据访问模式之Repository模式
    Angular.js Services
    OpenCascade简介
  • 原文地址:https://www.cnblogs.com/tongyi/p/8663988.html
Copyright © 2020-2023  润新知