using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO; namespace EncryptAndDecrypt
{
public class CryptoUtil
{
//随机定义8个字节密钥和初始化向量
private byte[] Key_64 = new byte[] { , , , , , , , };
private byte[] IV_64 = new byte[] { , , , , , , , }; /// <summary>
/// 加密
/// </summary>
/// <param name="str">需要加密的字符串</param>
/// <returns>加密后的字符串</returns>
public string Encrypt(string str)
{
if (str == "") return str; DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, cryptoProvider.CreateEncryptor(Key_64, IV_64), CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(cs);
string cyrStr = "";
try
{
sw.Write(str);
sw.Flush();
cs.FlushFinalBlock();
ms.Flush(); //将加密后的字节数组转化为字符串
cyrStr = Convert.ToBase64String(ms.GetBuffer(), , (int)ms.Length);
}
finally
{
sw.Close();
cs.Close();
ms.Close();
cryptoProvider.Clear();
}
return cyrStr;
} /// <summary>
/// 解密
/// </summary>
/// <param name="str">加密过的字符串</param>
/// <returns>解密后的字符串</returns>
public string Decrypt(string str)
{
if (str == "") return str;
//将字符串转换成字节数组
byte[] strbyte = Convert.FromBase64String(str);
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream(strbyte);
CryptoStream cs = new CryptoStream(ms, cryptoProvider.CreateDecryptor(Key_64, IV_64), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
string uncryStr = "";
try
{
uncryStr = sr.ReadToEnd();
}
finally
{
sr.Close();
cs.Close();
ms.Close();
cryptoProvider.Clear();
}
return uncryStr;
} } public class Program
{
public static void Main(string[] args)
{
CryptoUtil crypt = new CryptoUtil();
string text = "KingSoft";
string en = crypt.Encrypt(text);
Console.WriteLine(en); string de = crypt.Decrypt(en);
Console.WriteLine(de);
}
}
}

C# Base64加解密的更多相关文章

  1. java base64加解密

    接上篇java Base64算法. 根据之前过程使用base64加解密,所以写成了工具类. 代码示例; public class Base64Util { private static Logger ...

  2. QuickBase64 - Android 下拉通知栏快捷base64加解密工具

    Android Quick Setting Tile Base64 Encode/Decode Tool Android 下拉通知栏快捷 base64 加解密,自动将剪切板的内容进行 base64 E ...

  3. JAVA加解密 -- Base64加解密

    Base64算法实现:可以将任意的字节数组数据,通过算法,生成只有(大小写英文.数字.+./)(一共64个字符)内容表示的字符串数据. private static final String str ...

  4. base64加解密字符串

    import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio ...

  5. oracle里面base64加解密

    1. base64 的解密函数select utl_raw.cast_to_varchar2(utl_encode.base64_decode(utl_raw.cast_to_raw('dGVzdA= ...

  6. java之BASE64加解密

    1.简介 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到. 注:位于jdk的java.util包中. 2. ...

  7. Python AES - base64 加解密

    首先python引用AES加密 from Crypto.Cipher import AES 需要先安装  Crypto  模块, 可以使用 easy_install 进行安装   会自动去官网进行搜索 ...

  8. 使用Apache的Base64类实现Base64加解密

    包名称:org.apache.commons.codec.binary 类名称:org.apache.commons.codec.binary.Base64 1.Base64加密 public sta ...

  9. JavaScript Base64加解密

    Base64加密算法是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045-RFC2049,上面有MIME的详细规范.Base64编码可用于在HTTP环境下传递较长的标识信 ...

  10. Base64 加解密

    import java.io.UnsupportedEncodingException; import org.apache.tomcat.util.codec.binary.Base64; /** ...

随机推荐

  1. (一)SQL -- 基础知识

    SQL是一个标准的数据库语言,是面向集合的描述性非过程化语言. 优点:功能强.效率高.简单易学易维护. 缺点:非过程化语言,大多数语言都是独立执行,与上下文无关,而大多数 应用都是一个完整的过程,显然 ...

  2. vscode Vue格式化HTML标签换行问题

    解决方法:在设置里面直接贴上代码: "vetur.format.defaultFormatter.html": "js-beautify-html", &quo ...

  3. SVN更新报错:Checksum mismatch for ……

    问题: Checksum mismatch while updating '……'; expected: '3f9fd4dd7d1a0304d8020f73300a3e07', actual: 'cd ...

  4. Ubuntu - apt 下载源设置为阿里的源

    # 备份 sources.list cp /etc/apt/sources.list /etc/apt/sources.list.bak # 切换为阿里的源 echo "deb http:/ ...

  5. python学习笔记:(三)list(列表)常用的内置方法

    list(列表)包含一些内置的方法,以下为详细介绍: (方法调用:对象.方法(参数)) 1.append() 在列表的末尾添加新的对象 如: lst=[1,2,3] lst.append(4) --- ...

  6. Unity3D 可空值类型 Nullable

    值类型的变量永远不会变null,因为值类型是其本身不会变成null.引用类型可变成null,内存会全部使用0来表示null,因为这种开销会降低,仅仅需要将一块内存清除. 表示一些空值的方案: 1.使用 ...

  7. 2018.03.29 python-pandas 数据读取

    #数据读取# read_table,read_csv,read_excel #读取普通分隔数据:read_table #可以读取txt,csv import os import pandas as p ...

  8. Eclipse 添加 UML Model插件

    1.下载安装 ModelGson 下载链接:https://pan.baidu.com/s/1smIZApv   密码:mu5l eclipse安装ModelGson(注意不用解压ModelGson, ...

  9. 【Linux开发】jpeglib使用指南

    您可以到www.ijg.org网站下载libjpeg的源码, IJG JPEG Library就是jpeg压缩库,是以源码的形式提供给软件开发人员的,当然在软件包里也有编译好的库文件,我们这里就只用到 ...

  10. docker安装tomcat&部署javaweb程序

    一.docker定制简单的java-web应用镜像 网址: 1.jdk下载网址:https://www.oracle.com/technetwork/java/javase/downloads/jdk ...