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
        }
    }
  • 相关阅读:
    响应式Web设计- 背景图片
    55、装饰器的写法以及应用场景。
    54、用尽量多的方法实现单例模式
    53、 什么是反射?以及应用场景?
    52、列举面向对象中的特殊成员以及应用场景
    51、静态方法和类方法区别?
    算法----练习题2
    50、如何判断是函数还是方法?
    49、是否使用过functools中的函数?其作用是什么?
    48、面向对象中super的作用?
  • 原文地址:https://www.cnblogs.com/tongyi/p/8663988.html
Copyright © 2011-2022 走看看