zoukankan      html  css  js  c++  java
  • 简单的加密与解密代码

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

    namespace FaibClass.Encrypting
    {

        
    public class BaseEncrypt
        {
            
    /**////<summary> 
            
    /// 加密
            
    /// </summary> 
            
    /// <param name="s">需加密的字串</param> 
            
    /// <param name="k">密钥</param> 
            
    /// <returns></returns> 
            public static string EncryptString(string s,string k)
            {
                
    byte[] byKey=null;
                
    byte[] IV= {0x120x340x560x780x900xAB0xCD0xEF};
                
    try
                {
                    
    if(k.Length>8)
                        byKey 
    = System.Text.Encoding.UTF8.GetBytes(k.Substring(0,8));
                    
    else
                        byKey 
    = System.Text.Encoding.UTF8.GetBytes((k+(new string('V',8-k.Length))));
                    
                    DESCryptoServiceProvider des 
    = new DESCryptoServiceProvider();
                    
    byte[] inputByteArray = Encoding.UTF8.GetBytes(s);
                    MemoryStream ms 
    = new MemoryStream();
                    CryptoStream cs 
    = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write) ;
                    cs.Write(inputByteArray, 
    0, inputByteArray.Length);
                    cs.FlushFinalBlock();
                    
    return Convert.ToBase64String(ms.ToArray());
                }
                
    catch(System.Exception error)
                {
                    
    throw new Exception(error.Message);
                }
            }

            
    /**////<summary> 
            
    /// 解密
            
    /// </summary> 
            
    /// <param name="s">需解密的字串</param> 
            
    /// <param name="k">密钥</param> 
            
    /// <returns></returns> 
            public static string DecryptString(string s,string k)
            {
                
    byte[] byKey = null;
                
    byte[] IV= {0x120x340x560x780x900xAB0xCD0xEF}; 
                
    byte[] inputByteArray = new Byte[s.Length];
                
    try
                {
                    
    if(k.Length>8)
                        byKey 
    = System.Text.Encoding.UTF8.GetBytes(k.Substring(0,8));
                    
    else
                        byKey 
    = System.Text.Encoding.UTF8.GetBytes((k+(new string('V',8-k.Length))));

                    DESCryptoServiceProvider des 
    = new DESCryptoServiceProvider();
                    inputByteArray 
    = Convert.FromBase64String(s);
                    MemoryStream ms 
    = new MemoryStream();
                    CryptoStream cs 
    = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);
                    cs.Write(inputByteArray, 
    0, inputByteArray.Length);
                    cs.FlushFinalBlock();
                    System.Text.Encoding encoding 
    = new System.Text.UTF8Encoding();
                    
    return encoding.GetString(ms.ToArray());
                }
                
    catch(System.Exception error)
                {
                    
    throw new Exception(error.Message);
                }
            }
        }
    }

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    Pandas数据结构简要概述
    pip install PyQt5和pip install PyQt5tools安装后,找不到designer.exe路径
    解决Qt5中利用designer建立二级菜单无法输入中文的处理技巧
    事务
    大家一起讨论一下朋友网的人脉关系算法是怎么实现的
    .net程序员必须学习的10项技术
    KENDOUI控件 GRID中TEMPLATE中条件判断的使用
    Kendo Template 模板中使用KendoUI组件
    Kendo.Grid 使用POPUP时分别定义Create和Edit模板
    Kendo UI 遮罩层组件
  • 原文地址:https://www.cnblogs.com/Athrun/p/711520.html
Copyright © 2011-2022 走看看