• 字符串加密与解密 (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;
            }

  • 相关阅读:
    如何用VSCode手动编译Ace Editor
    libuv源码分析
    二叉平衡查找树---红黑树
    tcp滑动窗口与拥塞控制
    ceph架构剖析
    腾讯面试总结
    协程的实现原理
    dhcp协议交互报文
    libuv源码分析前言
    Protobuf使用规范分享
  • 原文地址:https://www.cnblogs.com/haimingkaifa/p/5710881.html
Copyright © 2020-2023  润新知