public partial class stringTest : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
           /*
            string s = "i am programmer";
            var arr = s.Split(' ');
            for (int i = arr.Length - 1; i >= 0; i--)
            {
                Response.Write(arr[i]+" ");
            }*/
 
            //加密测试
            string test = "邹大侠";
            string vkey = "zpc870921";
            Response.Write(string.Format("源字符串:{0}<br/>",test));
            string encrypResult = EncryptDes(test,vkey);
            Response.Write(string.Format("DES加密后字符串:{0}<br/>", encrypResult));
            string decryptResult = DecryptDes(encrypResult, vkey);
            Response.Write(string.Format("DES解密后字符串:{0}<br/>", decryptResult));
            Response.Write(string.Format("32位MD5加密:{0}<br/>", MD5Encrypt(test)));
        }
 
       /// <summary>
       /// 32位md5加密算法
       /// </summary>
       /// <param name="toencrypt"></param>
       /// <returns></returns>
        private string MD5Encrypt(string toencrypt)
        {
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            byte[] s = Encoding.UTF8.GetBytes(toencrypt);
            byte[] hashbyte = md5.ComputeHash(s);
            StringBuilder sb = new StringBuilder();
            foreach(var item in hashbyte)
            {
                sb.AppendFormat("{0:X2}",item);
            }
            return sb.ToString();
        }
 
        /// <summary>
        /// DES对称秘钥加密算法
        /// </summary>
        /// <param name="toencrypt"></param>
        /// <param name="vkey"></param>
        /// <returns></returns>
        private string EncryptDes(string toencrypt,string vkey)
        {
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            des.IV = Encoding.UTF8.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(vkey,"md5").Substring(0,8));
            des.Key = Encoding.UTF8.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(vkey,"md5").Substring(0,8));
            MemoryStream ms = new MemoryStream();
            byte[] s=Encoding.UTF8.GetBytes(toencrypt);
            using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
            {
                cs.Write(s, 0, s.Length);
                cs.FlushFinalBlock();
                cs.Close();
            }
            string result = Convert.ToBase64String(ms.ToArray());
            return result;
        }
 
        /// <summary>
        /// DES对称秘钥解密
        /// </summary>
        /// <param name="toencrypt"></param>
        /// <param name="vkey"></param>
        /// <returns></returns>
        private string DecryptDes(string toencrypt,string vkey)
        {
 
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            des.Key = Encoding.UTF8.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(vkey,"md5").Substring(0,8));
            des.IV = Encoding.UTF8.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(vkey, "md5").Substring(0, 8));
            byte[] s = Convert.FromBase64String(toencrypt);
            MemoryStream ms = new MemoryStream(s);
            CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read);
            StreamReader sr=new StreamReader(cs,Encoding.UTF8);
 
            string result =sr.ReadToEnd();
            return result;
        }
    }

C#MD5加密和DES加密解密算法的更多相关文章

  1. PHP对称加密-AES加密、DES加密

    对称加密 对称加密算法是指,数据发信方将明文(原始数据)和密钥一起经过加密处理后,使其变成复杂的加密密文发送出去.收信方收到密文后,若要解读原文,则需要使用加密密钥及相关算法的逆算法对密文进行解密,使 ...

  2. DES加解密算法Qt实现

      算法解密qt加密table64bit [声明] (1) 本文源码 大部分源码来自:DES算法代码.在此基础上,利用Qt编程进行了改写,实现了DES加解密算法,并添加了文件加解密功能.在此对署名为b ...

  3. JavaScript与C#互通的DES加解密算法

    原文地址:传送门 本文提供了一个能使JavaScript与C#互通的DES加解密算法的实现,在前台页面中用JavaScript版本的DES算法将数据加密之后,传到服务器端,在服务器端可用C#版本的DE ...

  4. 信息安全-加密:DES 加密

    ylbtech-信息安全-加密:DES 加密 DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资 ...

  5. md5加密、Des加密对称可逆加密、RSA非对称可逆加密、https单边验证、银行U盾双边认证

    1.md5不可逆的加密方式,加密成一个32位的字符串.算法是公开的,任何语言的加密结果都是一样的.总有可能是重复的.     用途:             (1)防止明文存储:可以用作密码加密    ...

  6. (iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题

    我们在项目中为了安全方面的考虑,通常情况下会选择一种加密方式对需要安全性的文本进行加密,而Base64加密和DES64加密是常用的加密算法.我记得我在前一个项目中使用的就是这两种加密算法的结合:Bas ...

  7. <密码学入门>关于DES加密算法解密算法相关问题

    题外话:个人觉得DES加密解密真的是一种过程冗长的方法,S盒,P盒还有各种各样的变换让人眼花缭乱. (一)Feistel密码结构 要先说Feistel密码结构的原因是DES加密过程是和Feistel密 ...

  8. Des加解密算法

    class DesHelper    {        /// <summary>        /// DES加密方法        /// </summary>       ...

  9. 实验一:C语言实现DES加解密算法

    计算程序执行10万次需要的时间: 总共需要175秒 加解密一次的时间小于:0.00175秒 纯计算加解密的时间会更短 去除IO操作后的时间 也就是说加解密一次的时间为0.07毫秒 /*-------- ...

随机推荐

  1. 使用window.getSelection()获取div中选中文字内容及位置

    div添加一个弹出事件: $(document).ready(function () { $("#marked-area").mouseup(function (e) { $sco ...

  2. 【考试记录】4.8 Table ( 数论数学 --组合数 & 杨辉三角)

    陆陆续续的开始考很多的试,也会更新这些题目记录下来,免得做完了之后毫无印象,就这么水过去了(以前的考试都是如此,哎……) Table (T1) : 样例: 出于对数学题本能的恐惧考场上放弃了此题专攻T ...

  3. [APIO2018] New Home

    题面在这里 description 在一个数轴上: 给定\(n\)个商店,每个商店有一个开业时间,关门时间,坐标和销售物品的种类 同时有\(m\)个询问,每个询问给你一个时间\(t[i]\)和地点\( ...

  4. cdq分治入门学习 cogs 1752 Mokia nwerc 2015-2016 G 二维偏序

    /* CDQ分治的对象是时间. 即对于一个时间段[L, R],我们取mid = (L + R) / 2. 分治的每层只考虑mid之前的修改对mid之后的查询的贡献,然后递归到[L,mid],(mid, ...

  5. codeforces 1077D

    题目:https://codeforces.com/contest/1077/problem/D 题意:给你一个长度为n的串,你需要在里面找到出现次数最多的长度为k的子序列(子序列中元素可重复),求这 ...

  6. hive subprocess failed with code X 的错误码对应信息

    PipeMapRed.waitOutputThreads(): subprocess failed with code X ,这里code X对应的信息如下:error code 1: Operati ...

  7. 马上给Meltdown和Spectre漏洞打补丁

    元旦之后的第一个工作日可谓是惊喜不断,4号就传来了 Google Project Zero 等团队和个人报告的 Meltdown 和 Spectre 内核漏洞的消息,首先简单介绍一下这两个内核漏洞. ...

  8. 搭建eova开发环境

    1.安装好maven 2.下载Eova项目解压到文件夹eova下 3.dos命令到eova文件夹下执行mvn eclipse:eclipse(注:构建eclipse项目命令) 4.修改*.tag文件错 ...

  9. MySQL实现分页查询

    imit 基本实现方式 一般情况下,客户端通过传递 pageNo(页码).pageSize(每页条数)两个参数去分页查询数据库中的数据,在数据量较小(元组百/千级)时使用 MySQL自带的 limit ...

  10. JVM内存模型 三

    本文章节: 1.JMM简介 2.堆和栈 3.本机内存 4.防止内存泄漏   1.JMM简介 i.内存模型概述 Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉 ...