AES加密 AESCrypt 类
/// <summary>
/// AES加密
/// </summary>
public sealed class AESCrypt
{
/// <summary>
/// 加密
/// </summary>
/// <param name="i_Context"></param>
/// <returns></returns>
static public string Encode(string text)
{
byte[] key = new byte[] { , , , , , , , , , , , , , , , };
byte[] iv = new byte[] { , , , , , , , , , , , , , , , };
try
{
RijndaelManaged rijn = new RijndaelManaged();
ICryptoTransform trans = rijn.CreateEncryptor(key, iv);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, trans, CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(cs);
try
{
sw.Write(text);
sw.Flush();
}
finally
{
sw.Close();
}
byte[] _text = ms.GetBuffer();
int k = ;
for (k = _text.Length - ; k >= ; k--)
{
if (_text[k] != )
{
break;
}
}
int len = k + ;
if (len % != )
{//必须保证取的长度为偶数
len += ;
}
return Convert.ToBase64String(ms.GetBuffer(), , len);
}
catch
{
return string.Empty;
}
} /// <summary>
/// 解密
/// </summary>
/// <param name="i_Context"></param>
/// <returns></returns>
static public string Decode(string text)
{
byte[] key = new byte[] { , , , , , , , , , , , , , , , };
byte[] iv = new byte[] { , , , , , , , , , , , , , , , };
try
{
RijndaelManaged rijn = new RijndaelManaged();
ICryptoTransform trans = rijn.CreateDecryptor(key, iv);
byte[] data = Convert.FromBase64String(text);
MemoryStream ms = new MemoryStream(data);
CryptoStream cs = new CryptoStream(ms, trans, CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
string r_data = string.Empty;
try
{
r_data = sr.ReadToEnd();
}
finally
{
sr.Close();
}
return r_data;
}
catch (Exception ex)
{
return string.Empty;
}
} } /// <summary>
/// SHA1摘要
/// </summary>
public sealed class SHA1Crypt
{
/// <summary>
/// Base64编码
/// </summary>
/// <param name="i_Content"></param>
/// <returns></returns>
static public string MakeCode(string text)
{
UTF8Encoding utf8 = new UTF8Encoding();
SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
byte[] cb = utf8.GetBytes(text);
byte[] sb = sha1.ComputeHash(cb);
return Convert.ToBase64String(sb);
}
} /// <summary>
/// MD5摘要
/// </summary>
public sealed class MD5Crypt
{
/// <summary>
/// 32位编码
/// </summary>
/// <param name="text"></param>
/// <returns></returns>
public string MakeCode(string text)
{
byte[] _bytes = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(text));
StringBuilder _result = new StringBuilder();
for (int i = ; i < _bytes.Length; i++)
{
string _hex = _bytes[i].ToString("x");
if (_hex.Length == )
{
_result.Append("");
}
_result.Append(_hex);
}
return _result.ToString();
}
}
AES加密 AESCrypt 类的更多相关文章
- Java AES 加密工具类
package com.microwisdom.utils; import java.security.NoSuchAlgorithmException; import java.security.S ...
- Android AES加密工具类实现(基础回顾)
package com.powercreator.cms.util; import java.security.SecureRandom; import javax.crypto.Cipher; im ...
- AES 加密工具类
/** * AES 是一种可逆加密算法,对用户的敏感信息加密处理 对原始数据进行AES加密后,在进行Base64编码转化: */public class AESOperator { /* * 加密用的 ...
- AES加密工具类(对称加密算法)
import java.nio.charset.Charset; import java.security.Key; import javax.crypto.Cipher;import javax.c ...
- AES加密解密工具类封装(AESUtil)
package club.codeapes.common.utils; import org.springframework.util.Base64Utils; import javax.crypto ...
- Jmeter参数的AES加密使用
在Jmeter日常实践中,大家应该都遇到过接口传参需要加密的情况.以登陆为例,用户名和密码一般都需要进行加密传输,在服务端再进行解密,这样安全系数会更高,但在使用jmeter进行接口测试的时候,怎样发 ...
- 使用AES加密的帮助类
在开发中经常使用加密/解密对一些内容进行处理,比如密码在存入数据库之前先经过加密处理等等,这里就把一个加密帮助类代码贴出来,供以后查找使用. 这个帮助类主要功能是对字符串和字节数组进行加密解密处理. ...
- PHP的AES加密类
PHP的AES加密类 aes.php <?php /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ...
- AES加密解密 助手类 CBC加密模式
"; string result1 = AESHelper.AesEncrypt(str); string result2 = AESHelper.AesDecrypt(result1); ...
随机推荐
- Studio 3T 如何使用 Query Builder 查询数据
Studio 3T 是一款对 MongoDB 进行数据操作的可视化工具. 在 Studio 3T 中,我们可以借助 Query Builder 的 Drag & Drop 来构建查询条件. 具 ...
- 【转】JMeter入门
一.JMeter概述 JMeter就是一个测试工具,相比于LoadRunner等测试工具,此工具免费,且比较好用,但是前提当然是安装Java环境: JMeter可以做 (1)压力测试及性能测试: (2 ...
- 1127 ZigZagging on a Tree
题意:中序序列+后序序列构建二叉树,之字形输出其层序序列. 思路:在结点的数据域中额外增加一个layer表示结点所在的层次,并定义vector<int> zigzag[maxn]存放最终结 ...
- mac下自定义伪协议配置
之前查了很多资料,最近也在挖掘研究这方面的漏洞. windows的很简单,在注册表配置就好了,但是mac os 是unix的,没有注册表这么一说. 但是发现腾讯等配置了自定义等协议,例如:tencen ...
- linux安装xgboost
在学校服务器上安装xgboost,事先我已经安装了anaconda,但是因为师兄已经装了python所以没加入到path. 网上的方法一般都要编译,另外官方的下载方法要联网..总之出了一堆错,最终还是 ...
- div+css显示两行或三行文字
display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: ; //需要控制的文本行数 overflow: hidd ...
- Java微信公众平台开发(十二)--微信用户信息的获取
转自:http://www.cuiyongzhi.com/post/56.html 前面的文章有讲到微信的一系列开发文章,包括token获取.菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信 ...
- BeX5 常见问题解决办法
1.获取当前Activity的名称 Activity activity = ProcessUtils.getActivityInProcessContext(); String activityNam ...
- Codeforce 1004C
Description Since Sonya is interested in robotics too, she decided to construct robots that will rea ...
- 【289】◀▶ Python I/O & 读写文本文件
参考:Python 文件 I/O 参考:Python OS 文件/目录方法 目录: 01 open 函数 用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写. 02 F ...