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); ...
随机推荐
- 蓝桥杯 基础练习 BASIC-30 阶乘计算
基础练习 阶乘计算 时间限制:1.0s 内存限制:512.0MB 问题描述 输入一个正整数n,输出n!的值. 其中n!=1*2*3*…*n. 算法描述 n!可能很大,而计算机能表示的整数范围有 ...
- 2017中国大学生程序设计竞赛 - 女生专场 Happy Necklace(递推+矩阵快速幂)
Happy Necklace Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- HDU 4547 CD操作 (LCA最近公共祖先Tarjan模版)
CD操作 倍增法 https://i.cnblogs.com/EditPosts.aspx?postid=8605845 Time Limit : 10000/5000ms (Java/Other) ...
- Office 2019 2016 安装破解教程
声明:工具由蓝点网提供支持,密钥为本人收集内容,非转载部分 GVLKs for Office 2019 Product GVLK Office Professional Plus 2019 ...
- Linux操作系统下的多线程编程详细解析----条件变量
条件变量通过允许线程阻塞和等待另一个线程发送信号的方法,弥补了互斥锁(Mutex)的不足. 1.初始化条件变量pthread_cond_init #include <pthread.h> ...
- MAC 10.6 64wei
苹果电脑 Mac OS X 10.6 雪豹系统同时支持 32 位和 64 位模式,关于开启 64 位的好处,字太多,本文后半段介绍.下面先说查看你的苹果电脑是否开启了 64 位以及设置苹果电脑 Mac ...
- Linux - 锁定文件
锁定关键的系统文件可以防止服务器提权后被篡改 对启动文件和账号密码文件进行加锁 [root@sch01ar ~]# chattr +i /etc/passwd /etc/shadow /etc/gro ...
- Linux - 用户的增删改查及组的相关操作
useradd:新增一个用户 useradd 几个常用的参数: -u:指定用户的 uid -g:指定用户所属的组 -d:指定用户的家目录 -c:指定用户的备注信息 -s:指定用户所用的 shell [ ...
- Vue 简单的总结二
表单输入绑定 数据双向绑定 v-model 绑定相同的属性 当属性变化绑定的标签内容也跟着变化 v-model 只能应用像在input textare select 标签 v-model.lazy 懒 ...
- powerdesigner Oracle.sql转mysql.sql
将要导入的库的所有表的表结构(不要表数据,只要表结构)导出成一个.sql文件. 在PowerDesinger里找到 File -->> Reverse Engineer --->&g ...