C# Base64加解密
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加解密的更多相关文章
- java base64加解密
接上篇java Base64算法. 根据之前过程使用base64加解密,所以写成了工具类. 代码示例; public class Base64Util { private static Logger ...
- QuickBase64 - Android 下拉通知栏快捷base64加解密工具
Android Quick Setting Tile Base64 Encode/Decode Tool Android 下拉通知栏快捷 base64 加解密,自动将剪切板的内容进行 base64 E ...
- JAVA加解密 -- Base64加解密
Base64算法实现:可以将任意的字节数组数据,通过算法,生成只有(大小写英文.数字.+./)(一共64个字符)内容表示的字符串数据. private static final String str ...
- base64加解密字符串
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio ...
- oracle里面base64加解密
1. base64 的解密函数select utl_raw.cast_to_varchar2(utl_encode.base64_decode(utl_raw.cast_to_raw('dGVzdA= ...
- java之BASE64加解密
1.简介 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到. 注:位于jdk的java.util包中. 2. ...
- Python AES - base64 加解密
首先python引用AES加密 from Crypto.Cipher import AES 需要先安装 Crypto 模块, 可以使用 easy_install 进行安装 会自动去官网进行搜索 ...
- 使用Apache的Base64类实现Base64加解密
包名称:org.apache.commons.codec.binary 类名称:org.apache.commons.codec.binary.Base64 1.Base64加密 public sta ...
- JavaScript Base64加解密
Base64加密算法是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045-RFC2049,上面有MIME的详细规范.Base64编码可用于在HTTP环境下传递较长的标识信 ...
- Base64 加解密
import java.io.UnsupportedEncodingException; import org.apache.tomcat.util.codec.binary.Base64; /** ...
随机推荐
- Windows10系统内置Linux
主要是在等电脑安装系统,有点慢,于是写个博客…… 还是那句话,从今年开始NOIP应该就不让用Windows了,所以还是尽早转Linux吧,不然NOIP考场上不会编译太尴尬对吧. 在学校电脑有Linux ...
- ArrayList类源码浅析(二)
1.removeAll(Collection<?> c)和retainAll(Collection<?> c)方法 第一个是从list中删除指定的匹配的集合元素,第二个方法是用 ...
- gdb break 断点设置
http://sourceware.org/gdb/current/onlinedocs/gdb/ 断点设置 gdb断点分类: 以设置断点的命令分类: breakpoint 可以根据行号.函数.条件生 ...
- Linux_Comand - Check disk space
df -h du -sh Delete folder older than 30 days find /path -name "test-*" -type d -mtime +30 ...
- JavaScript-W3School-Browser 对象:Window open() 方法
ylbtech-JavaScript-Runoob-Browser 对象:Window open() 方法 1.返回顶部 1. Window open() 方法 Window 对象 定义和用法 op ...
- JavaScript判断 Radio 单选按钮是否为选中状态 并弹出 值信息
今天在百度前端任务中遇到了一个以前没怎么注意的知识点,所以就准备记下来 <script type="text/javascript"> //判断个函数 以上 5 个Ra ...
- 2018 icpc 徐州
A 矩阵树定理可以用于最小生成树计数,最直观的做法就是求个mst,再用矩阵树定理求最小生成树个数,但是n<=1e5,显然不是o(n^3)可以做出来的. 考虑随机数据生成器,固定1e5的边,但是边 ...
- 将html转化为canvas图片(清晰度高)的方法
var copyDom = document.querySelector('.fenxiang1'); var width = copyDom.offsetWidth;//dom宽 var heigh ...
- [转帖]又一国产x86处理器可大规模上市:Intel至强核心 安全监测管控
又一国产x86处理器可大规模上市:Intel至强核心 安全监测管控 https://www.cnbeta.com/articles/tech/850525.htm 不知道是不是有一起汉芯事件 国产CP ...
- MySql-Mysql技术内幕~SQL编程学习笔记(N)
1._rowid 类似Oracle的rowid mysql> ; +-------+----+----------------+-------------+---------------+--- ...