using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.IO;
  
namespace ConsoleApplication1
{
    class Program
    {
        static string encryptKey = "Oyea";    //定义密钥 
  
        #region 加密字符串 
        /// <summary> /// 加密字符串  
        /// </summary> 
        /// <param name="str">要加密的字符串</param> 
        /// <returns>加密后的字符串</returns> 
        static 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());//返回加密后的字符串 
        
        #endregion
  
        #region 解密字符串  
        /// <summary> 
        /// 解密字符串  
        /// </summary> 
        /// <param name="str">要解密的字符串</param> 
        /// <returns>解密后的字符串</returns>   
        static string Decrypt(string str) 
        {     
            DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();   //实例化加/解密类对象   
     
            byte[] key = Encoding.Unicode.GetBytes(encryptKey); //定义字节数组,用来存储密钥   
    
            byte[] data = Convert.FromBase64String(str);//定义字节数组,用来存储要解密的字符串 
      
            MemoryStream MStream = new MemoryStream(); //实例化内存流对象     
   
            //使用内存流实例化解密流对象      
            CryptoStream CStream = new CryptoStream(MStream, descsp.CreateDecryptor(key, key), CryptoStreamMode.Write);  
   
            CStream.Write(data, 0, data.Length);      //向解密流中写入数据    
  
            CStream.FlushFinalBlock();               //释放解密流     
  
            return Encoding.Unicode.GetString(MStream.ToArray());       //返回解密后的字符串 
        
        #endregion
  
        static void Main(string[] args)
        {
            Console.Write("请输入要加密的字符串:");   //提示输入字符串     
            Console.WriteLine();                  //换行输入  
            string str = Console.ReadLine();     //记录输入的字符串     
            string strNew = Encrypt(str);              //加密字符串     
            Console.WriteLine("加密后的字符串:" + strNew);  //输出加密后的字符串     
            Console.WriteLine("解密后的字符串:" + Decrypt(strNew)); //解密字符串并输出    
            Console.ReadLine();
        }
    }
}

C#一个字符串的加密与解密的更多相关文章

  1. 【Java】通过DES加密和解密工具,对字符串进行加密和解密操作

    分享一个非常不错的字符串加密和解密的程序. 可以指定不同的密钥对同一字符串进行不同的加密操作,增强加密性能. Java代码如下: package com.app; import java.securi ...

  2. Java 实现字符串的加密与解密

    package com.wangbo.util; import java.security.Key; import java.security.Security; import javax.crypt ...

  3. java对字符串进行加密和解密(以下是来自其他博主)

    背景:需要对读取数据库配置的文件进行加密,防止他人拿到数据,而对自己的代码,有要实现进行解密,网上给的加密方式,什么MD5,base64,还有等等,都太复杂,而且有些是单向的,只加密不解密,以下代码, ...

  4. ASP.NET数据库连接字符串的加密与解密

    ASP.NET web.config中,数据库连接字符串的加密与解密. 虽然不怎么新鲜,但相信还是有许多人不知道,好,不说废话,直接给方法:开始--->运行,输入cmd,接着输入以下内容 加密: ...

  5. MVC项目实践,在三层架构下实现SportsStore-10,连接字符串的加密和解密

    SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...

  6. js对字符串进行加密和解密方法!

    在做一些微信小程序,或混合 app 的时候,或者是考虑到一些 JS 数据安全的问题.可能会使用到 JS 对用户信息进行缓存. 例如在开发:微信小程序对用户进行加密缓存,开发混合APP对用户信息进行加密 ...

  7. js对字符串进行加密和解密

    //字符串进行加密 function compileStr(code){   var c=String.fromCharCode(code.charCodeAt(0)+code.length); fo ...

  8. C#中对字符串的加密和解密

    加密: /// <summary> /// 对字符串进行加密 /// </summary> /// <param name="proclaimText" ...

  9. ABAP字符串的加密与解密

    FIEB_PASSWORD_DECRYPT:字符串解密:FIEB_PASSWORD_ENCRYPT:字符串加密.旧版本的可以用. PARAMETERS:str1 type char32 OBLIGAT ...

随机推荐

  1. hdoj 5461 Largest Point

    Largest Point Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tot ...

  2. [转]3proxy 二级代理配置样例

    转自:http://www.cnblogs.com/airsong23/p/3893094.html 适应情况: 有时,我们的机器HOST-A只能通过代理服务器HOST-B才可以访问internet, ...

  3. rails + mongoid 使用

    1. 测试环境 2. 创建工程 rails new mongoid_app --skip-active-record --skip-test-unit --skip-bundle 3. 修改gemfi ...

  4. win10清理C盘

    用win10系统也不是很久,发现C盘容量越来越小了,于是乎扫描了一下,发现有两个文件容量很大 C:/hiberfil.syssize:1660444672 C:/swapfile.syssize:26 ...

  5. Introspector(内省)简单演示样例 与 简单应用

    简单演示样例: package com.asdfLeftHand.test; import java.beans.BeanDescriptor; import java.beans.BeanInfo; ...

  6. The TCP/IP parameters for tweaking

    The TCP/IP parameters for tweaking a Linux-based machine for fast internet connections are located i ...

  7. CentOS下MySQL 5.7编译安装

    CentOS下MySQL 5.7编译安装   文章目录 安装依赖包 下载相应源码包 添加mysql用户 预编译 编译安装 启动脚本,设置开机自启动 /etc/my.cnf,仅供参考 初始化数据库 设置 ...

  8. 关于cocos2d-x精灵加亮及变灰效果

    //根据现有CCSprite,变亮和变灰 static CCSprite* graylightWithCCSprite(CCSprite* oldSprite,bool isLight) { //CC ...

  9. Linux下Tomcat安装、配置

    /etc/profile./etc/profile.d和.bash_profile区别 /etc/profile和/etc/profile.d区别 .bash_profile 是存放用户的全局变量 / ...

  10. [GDI+] C# ImageClass帮助类教程与源码下载 (转载)

    点击下载 ImageClass.rar 功能如下图片 主要功能有:缩略图片,图片水印,文字水印,调整光暗,反色处理,浮雕处理,拉伸处理,左右翻转,上下翻转,压缩图片,图片灰度化,转换为黑白图片,获取图 ...