3DES加密解密「建议收藏」

3DES加密解密「建议收藏」C#3DES加密解密,JAVA、PHP可用

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167591.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号