• 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
        }
    }
  • 相关阅读:
    root用户javac可以执行sudo后command not found问题
    机器学习 KNN算法实现 (鸢尾花)
    机器学习 KNN分类算法简单介绍+数据集拆分
    机器学习的一般流程
    机器学习算法的性能评价
    Opencv 自带函数(Haar)的人脸检测
    Opencv 的基础认识
    labelme 的学习
    天梯赛总结CCCC
    VScode配置c,c++编译环境
  • 原文地址:https://www.cnblogs.com/tongyi/p/8663988.html
Copyright © 2020-2023  润新知