zoukankan      html  css  js  c++  java
  • 加密的一些事。。。

    ///<summary>/// 加密字符
        ///</summary>///<param name=pToEncrypt>加密字符串</param>///<param name=skey>加密密钥</param>///<returns>返回加密</returns>publicclass DescMD5
        {
           publicstaticstring skey ="abcdefgh";
    
            publicstring Skey
            {
                get { return skey; }
                set { skey = value; }
            }
    
    
           ///<summary>/// 加密函数
           ///</summary>///<param name="pToEncrypt"></param>///<returns></returns>publicstring EnCrypt(string pToEncrypt)
           {
               //访问数据加密标准(DES)算法的加密服务提供程序 (CSP) 版本的包装对象           DESCryptoServiceProvider des =new DESCryptoServiceProvider();
               des.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(skey);//建立加密对象的密钥和偏移量           des.IV = ASCIIEncoding.ASCII.GetBytes(skey); //原文使用ASCIIEncoding.ASCII方法的GetBytes方法byte[] inputbyteArray = Encoding.Default.GetBytes(pToEncrypt);//把字符串放到byte数组中           MemoryStream ms =new MemoryStream();//创建其支持存储区为内存的流           
               CryptoStream cs =new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
               cs.Write(inputbyteArray, 0, inputbyteArray.Length);
               cs.FlushFinalBlock();//上面已经完成了把加密后的结果放到内存中去
    
               StringBuilder ret =new StringBuilder();
               foreach (byte b in ms.ToArray())
               {
                   ret.AppendFormat("{0:X2}", b);
                
               
               }
               return ret.ToString();
    
    
    
           }
           
                
    
           ///<summary>/// 解密ESC函数
           ///</summary>///<param name="pToDecrypt">被解密的字符串</param>///<param name="sKey">密钥(只支持8个字节的密钥,同前面的加密密钥相同)</param>///<returns>返回被解密的字符串</returns>publicstring DeCrypt(string pToDecrypt)
           {
    
               DESCryptoServiceProvider des =new DESCryptoServiceProvider();
           
               byte []inputbyteArray=newbyte[pToDecrypt.Length/2];
               for (int i =0; i < pToDecrypt.Length /2; i++)
               {
                   int x = Convert.ToInt32(pToDecrypt.Substring(i *2, 2), 16);
    
                   inputbyteArray[i] = (byte)x;
               
               }
               des.Key = ASCIIEncoding.ASCII.GetBytes(skey);
               des.IV = ASCIIEncoding.ASCII.GetBytes(skey);
               MemoryStream ms =new MemoryStream();
               CryptoStream cs =new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
               cs.Write(inputbyteArray, 0, inputbyteArray.Length);
               cs.FlushFinalBlock();
    
    
               return System.Text.Encoding.Default.GetString(ms.ToArray());
    
           }
    
           public DescMD5() { }
    
    
    
        }
  • 相关阅读:
    Ansible工作架构和原理
    基于WSAAsyncSelect模型的两台计算机之间的通信
    基于Select模型通信程序的编写,编译和执行
    Windows API窗口绘图程序设计
    常用自动化运维工具
    简单的程序发布流程
    TCPIP协议编程:基于UDP协议的局域网聊天工具的研发
    Python 遗传算法实现字符串
    python3 井字棋 GUI
    Docker 容器的跨主机连接
  • 原文地址:https://www.cnblogs.com/weiying/p/weiying03_20.html
Copyright © 2011-2022 走看看