/// AES加密
2 /// </summary>
3 /// <param name="inputdata">输入的数据</param>
4 /// <param name="iv">向量128位</param>
5 /// <param name="strKey">加密密钥</param>
6 /// <returns></returns>
7 public static byte[] AESEncrypt(byte[] inputdata, byte[] iv, string strKey)
8 {
9 //分组加密算法
10 SymmetricAlgorithm des = Rijndael.Create();
11 byte[] inputByteArray = inputdata;//得到需要加密的字节数组
12 //设置密钥及密钥向量
13 des.Key = Encoding.UTF8.GetBytes(strKey.Substring(0, 32));
14 des.IV = iv;
15 using (MemoryStream ms = new MemoryStream())
16 {
17 using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
18 {
19 cs.Write(inputByteArray, 0, inputByteArray.Length);
20 cs.FlushFinalBlock();
21 byte[] cipherBytes = ms.ToArray();//得到加密后的字节数组
22 cs.Close();
23 ms.Close();
24 return cipherBytes;
25 }
26 }
27 }
28
29
30 /// <summary>
31 /// AES解密
32 /// </summary>
33 /// <param name="inputdata">输入的数据</param>
34 /// <param name="iv">向量128</param>
35 /// <param name="strKey">key</param>
36 /// <returns></returns>
37 public static byte[] AESDecrypt(byte[] inputdata, byte[] iv, string strKey)
38 {
39 SymmetricAlgorithm des = Rijndael.Create();
40 des.Key = Encoding.UTF8.GetBytes(strKey.Substring(0, 32));
41 des.IV = iv;
42 byte[] decryptBytes = new byte[inputdata.Length];
43 using (MemoryStream ms = new MemoryStream(inputdata))
44 {
45 using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read))
46 {
47 cs.Read(decryptBytes, 0, decryptBytes.Length);
48 cs.Close();
49 ms.Close();
50 }
51 }
52 return decryptBytes;
53 }
C# 128位AES 加密解密 (转)
时间: 2024-10-11 23:25:35
C# 128位AES 加密解密 (转)的相关文章
java AES加密解密
近些年DES使用越来越少,原因就在于其使用56位密钥,比较容易被破解,近些年来逐渐被AES替代,AES已经变成目前对称加密中最流行算法之一:AES可以使用128.192.和256位密钥,并且用128位分组加密和解密数据.本文就简单介绍如何通过JAVA实现AES加密. 因为在做接口 webservice的时候接受穿过的数据 是xml 加密为二进制 byte[] 下面直接看代码 : import java.io.UnsupportedEncodingException; import java.
Java 关于密码处理的工具类[MD5编码][AES加密/解密]
项目中又遇到了加密问题,又去翻了半天,然后做测试,干脆就把常用的两类小结一下. 1.第一种所谓的MD5加密 其实也不算加密,只是基于Hash算法的不可逆编码而已,等于说,一旦经过MD5处理,是不可能从编码后的字符串反推回去的. MD5的方法是基于散列的.本身信息不全.理论上是不能还原成唯一字符串的. 网上所谓的解密,也只是拥有一个足够大的字典映射,将编码前的源字符和编码后的目标字符关联起来而已,大多数常见的还行,复杂点的估计就会话费很长时间,有兴趣的可以试试. 至于MD5的用法,在初次录入的时候
AES加密解密&;amp;&;amp;SHA1、SHA加密&;amp;&;amp;MD5加密
AES加密解密 SHA1.SHA加密 MD5加密 二话不说立即附上代码: package com.luo.util; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.
php使用openssl进行Rsa长数据加密(117)解密(128) 和 DES 加密解密
PHP使用openssl进行Rsa加密,如果要加密的明文太长则会出错,解决方法:加密的时候117个字符加密一次,然后把所有的密文拼接成一个密文:解密的时候需要128个字符解密一下,然后拼接成数据. 加密: /** * 加密 * @param $originalData * @return string|void */ /*function encrypt($originalData){ // if (openssl_private_encrypt($originalData, $encryptD
java使用AES加密解密 AES-128-ECB加密
http://www.cnblogs.com/chen-lhx/p/5817161.html ************************************************* import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; /** * * @author Administrator * */ pub
C# AES加密解密
完整代码: /****************************************************************** * 创建人:HTL * 创建时间:2015-04-17 17:36:35 * 说明:C# AES加密解密 * Email:[email protected] *******************************************************************//* using System; using System
JAVA中使用AES加密解密
技术交流群: 233513714 /** * AES加密测试 * * @param str 加密参数 */ public void aesTest(String str) { log.info("[rsaTest获取请求:{}]", str); try { String encryptResult = AESUtil.encrypt(str, "123456"); log.info("[AES加密后的参数为:{}]", encryptResult
ruby AES加密解密
最近和京东合作做一个项目,在接口对接传递参数时,参数需要通过AES加密解密. 本来想到用gem 'aescrypt'处理,但是aescrypt的编码方式用的base64,而京东那边用的是16进制.所以就自己写了加密解密方法. AES 加密 def aes_encrypt(key, encrypted_string) aes = OpenSSL::Cipher::Cipher.new("AES-128-ECB") aes.encrypt aes.key = key txt = aes.u
AES 加密 解密
/// <summary> /// AES 加密 /// </summary> /// <param name="input">待加密的字符串</param> /// <param name="key">加密密钥,要求为32位</param> /// <returns>加密成功返回加密后的字符串,失败 throw</returns> public static strin