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); ...
随机推荐
- nginx相关关键词
nginx在unix系统中会以daemon(守护进程)方式在后台运行; nginx默认模式是多线程的; nginx会有一个master进程和多个worker进程,master进程主要用来管理worke ...
- 加载Firefox 和 chrome 浏览器配置
Firefox: Chrome:
- java中求利息的代码
总结:函数的重要性,懂得用哪一种函数 package com.badu; import java.util.Scanner; //输入存款金额 money.存期 year 和年利率 rate, //根 ...
- 让memcached分布式
memcached是应用最广的开源cache产品,它本身不提供分布式的解决方案,我猜想一方面它想尽量保持产品简单高效,另一方面cache的key-value的特性使得让memcached分布式起来比较 ...
- 实战 TestNG 监听器
TestNG 是一个开源的自动化测试框架,其灵感来自 JUnit 和 NUnit,但它引入了一些新功能,使其功能更强大,更易于使用.TestNG 的设计目标是能够被用于进行各种类型测试:单元测试.功能 ...
- LevelDB Cache实现机制分析
几天前淘宝量子恒道在博客上分析了HBase的Cache机制,本篇文章,结合LevelDB 1.7.0版本的源码,分析下LevelDB的Cache机制. 概述 LevelDB是Google开源的持久化K ...
- PHP实现四种基本排序算法 得多消化消化
1.冒泡排序 // 冒泡排序 思路分析:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒.即,每当两相邻的数比较后发现它们的排序与排序 ...
- linux那点事儿(七)----文件系统管理
如果你是一位忠实的windows 用户,那么现在请你打开的的c盘,打开WINDWOS目录,下面存放了哪些文件和目录,相信没有人关心过吧!即便是用windows多年的人.额!其实,我也知道WINDOWS ...
- 在Altium Designer 9中如何实现元器件旋转45°放置
方法一: 双击元件手工输入指定角度. 方法二: 在Preferences >> PCB Editor >> General中将Rotation Step(旋转的步进值)由90改 ...
- List对象中的组合、查询、扩展
var Pnts = segs.Select( c => pntTsLst.Where ...