如何用C#实现DES加密解密

2016-02-19 12:22 14 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的如何用C#实现DES加密解密教程,一起来看看吧!超容易上手~

【 tulaoshi.com - 编程语言 】

代码如下:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

using System;
using System.Security.Cryptography;
using System.Text;
using System.IO;

namespace Common
...{
    /**//// summary
    /// DESEncrypt加密解密算法。
    /// /summary
    public sealed class DESEncrypt
    ...{
        private DESEncrypt()
        ...{
            //
            // TODO: 在此处添加构造函数逻辑
            //
        }

        private static string key = "zhoufoxcn";

        /**//// summary
        /// 对称加密解密的密钥
        /// /summary
        public static string Key
        ...{
            get
            ...{
                return key;
            }
            set
            ...{
                key = value;
            }
        }

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

        /**//// summary
        /// DES加密
        /// /summary
        /// param name="encryptString"/param
        /// returns/returns
        public static string DesEncrypt(string encryptString)
        ...{
            byte[] keyBytes = Encoding.UTF8.GetBytes(key.Substring(0, 8));
            byte[] keyIV = keyBytes;
            byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
            DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
            MemoryStream mStream = new MemoryStream();
            CryptoStream cStream = new CryptoStream(mStream, provider.CreateEncryptor(keyBytes, keyIV), CryptoStreamMode.Write);
            cStream.Write(inputByteArray, 0, inputByteArray.Length);
            cStream.FlushFinalBlock();
            return Convert.ToBase64String(mStream.ToArray());
        }

        /**//// summary
        /// DES解密
        /// /summary
        /// param name="decryptString"/param
        /// returns/returns
        public static string DesDecrypt(string decryptString)
        ...{
            byte[] keyBytes = Encoding.UTF8.GetBytes(key.Substring(0, 8));
            byte[] keyIV = keyBytes;
            byte[] inputByteArray = Convert.FromBase64String(decryptString);
            DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
            MemoryStream mStream = new MemoryStream();
            CryptoStream cStream = new CryptoStream(mStream, provider.CreateDecryptor(keyBytes, keyIV), CryptoStreamMode.Write);
            cStream.Write(inputByteArray, 0, inputByteArray.Length);
            cStream.FlushFinalBlock();
            return Encoding.UTF8.GetString(mStream.ToArray());
        }
    }
}

来源:https://www.tulaoshi.com/n/20160219/1600744.html

延伸阅读
之前发了一篇使用Window API来实现管道技术的文章,后来改用C#来实现相同的效果,发现C#本身方便的进程线程机制使工作变得简单至极,随手记录一下。 首先,我们可以通过设置Process类,获取输出接口,代码如下: Process proc = new Process(); proc .StartInfo.FileName = strScript; proc .StartInfo.WorkingDirectory = strDirectory; pro...
可以用DSA和RSA,如: using System; using System.Text; using System.Security.Cryptography; class dsacrypto_SignData { public static void Main(String[] args){ //先要将字符串转换为字节数组,这与编码有关。 String str = "this is a test."; byte[] bytes = Encoding.ASCII.GetBytes(str); //选择签名方式,有RSA和DSA DSACr...
exc.Charts.Add(Missing,Missing,1,Missing); exc.ActiveChart.ChartType=Excel.XlChartType.xlColumnClustered; exc.ActiveChart.SetSourceData(worksheet.get_Range("A1","B10"),Excel.XlRowCol.xlColumns); exc.ActiveChart.Location(Excel.XlChartLocation.xlLocationAsObject,"sheet1"); exc.ActiveChart.HasTitle=true; exc.ActiveChart....
标签: Web开发
jce.jar security/US_export_policy.jar security/local_policy.jar ext/sunjce_provider.jar Java运行时会自动加载这些包,因此对于带main函数的应用程序不需要设置到CLASSPATH环境变量中。对于WEB应用,不需要把这些包加到WEB-INF/lib目录下。 以下是java中调用sun公司提供的3DES加密解密算法的样本代码: 代码如下: /*字符串 DESede(...
//使用客户端的公共密钥加密对称密钥并发送给客。encryptAndSendSymmetricKey(client, rsa, symm);//使用对称密钥加密信息并发送encryptAndSendSecretMessage(client, symm, msg);}catch (Exception e){Console.WriteLine(e.Message);Console.WriteLine(e.StackTrace);}finally{try{client.Close();listener.Stop();}catch{//错误}Console.Writ...

经验教程

71

收藏

7
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部