• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
统哥
博客园    首页    新随笔    联系   管理    订阅  订阅

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
    }
}

 

posted @ 2018-03-28 15:14  统哥  阅读(6140)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3