zoukankan      html  css  js  c++  java
  • 字符串加密与解密 (MD5)

    加密、解密字符串时,需要用到加密类和内存流,所以首先需要在命名控件中需要进行引入

      static string encryptKey = "Oyea"; //定义秘钥

     public string Encrypt(string str)  //加密
            {
                DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();//实例化加密对象
                byte[] key = Encoding.Unicode.GetBytes(encryptKey);//定义字节数组,用来存储秘钥
                byte[] data = Encoding.Unicode.GetBytes(str);//定义字节数组,用来要存储加密的字符串
                MemoryStream mStream = new MemoryStream();//实例化内存流对象
                //使用内存流实例化加密对象
                CryptoStream cStream = new CryptoStream(mStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write);
                cStream.Write(data,0, data.Length);
                cStream.FlushFinalBlock();
                return Convert.ToBase64String( mStream.ToArray());
            }

            public string DesCrypr(string str)
            {
                DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();//定义加密类对象
                byte[] key = Encoding.Unicode.GetBytes(encryptKey);
                byte[] data = Convert.FromBase64String(str);
                MemoryStream mStram = new MemoryStream();//实例化内存流对象
                CryptoStream cStream = new CryptoStream(mStram, descsp.CreateDecryptor(key, key), CryptoStreamMode.Write);
                cStream.Write(data,0,data.Length);
                cStream.FlushFinalBlock();
                return Encoding.Unicode.GetString(mStram.ToArray());

            }

    //MD5加密  不可逆

     public string GetMd5(string str) //加密方法
            {
                string strResult = string.Empty;
                //创建实例
                MD5 md5 = MD5.Create();
                byte[] strByte=   Encoding.Default.GetBytes(str); //字符转换成字符数组
                byte[] md5Buffer=    md5.ComputeHash(strByte, 0, strByte.Length); //转换加密数组
                for (int i = 0; i < md5Buffer.Length; i++)  //循环
                {
                    strResult += md5Buffer[i].ToString("X2"); //自己转换成16进制
                }
                return    strResult;
            }

  • 相关阅读:
    【struts1】--Servlet讲解MVC框架基本原理
    bigDecimal使用方法详解(转载)
    【web】--Ajax data选择性赋值
    【JSTL】--格式化日期--drp217
    2021-01-01:https加解密机制,你了解多少?
    2020-12-31:tcp三次握手,最后一次失败,网络会怎么样?
    2020-12-30:生产环境 CPU 占用过高,你如何解决?
    2020-12-29:mysql中,innodb表里,某一条数据删除了之后,这条数据会被真实的擦掉吗,还是删除了关系?
    2020-12-28:java中,生产环境服务器变慢,如何诊断处理?
    2020-12-27:网络调试工具都用了什么?
  • 原文地址:https://www.cnblogs.com/haimingkaifa/p/5710881.html
Copyright © 2011-2022 走看看