测试网站:在线AES加密解密、AES在线加密解密、AES encryption and decryption

输出类型不同,则选择不同的获得byte数组方式

//base64
    Byte[] encryptedBytes = Convert.FromBase64String(Data);
    //hex
    //Byte[] encryptedBytes = hexStringToByteArray(Data);

本段代码来源:AES加密解密通用版Object-C / C# / JAVA

/// <summary>
/// AES加密(无向量)
/// </summary>
/// <param name="plainBytes">被加密的明文</param>
/// <param name="key">密钥</param>
/// <returns>密文</returns>
private static string AESEncrypt(String Data, String Key)
{MemoryStream mStream = new MemoryStream();RijndaelManaged aes = new RijndaelManaged();byte[] plainBytes = Encoding.UTF8.GetBytes(Data);Byte[] bKey = new Byte[32];Array.Copy(Encoding.UTF8.GetBytes(Key.PadRight(bKey.Length)), bKey, bKey.Length);aes.Mode = CipherMode.ECB;aes.Padding = PaddingMode.PKCS7;aes.KeySize = 128;//aes.Key = _key;  aes.Key = bKey;//aes.IV = _iV;  CryptoStream cryptoStream = new CryptoStream(mStream, aes.CreateEncryptor(), CryptoStreamMode.Write);try{cryptoStream.Write(plainBytes, 0, plainBytes.Length);cryptoStream.FlushFinalBlock();return Convert.ToBase64String(mStream.ToArray());}finally{cryptoStream.Close();mStream.Close();aes.Clear();}
}/// AES解密(无向量)
/// </summary>
/// <param name="encryptedBytes">被加密的明文</param>
/// <param name="key">密钥</param>
/// <returns>明文</returns>
private static string AESDecrypt(String Data, String Key)
{//base64Byte[] encryptedBytes = Convert.FromBase64String(Data);//hex//Byte[] encryptedBytes = hexStringToByteArray(Data);Byte[] bKey = new Byte[32];Array.Copy(Encoding.UTF8.GetBytes(Key.PadRight(bKey.Length)), bKey, bKey.Length);MemoryStream mStream = new MemoryStream(encryptedBytes);//mStream.Write( encryptedBytes, 0, encryptedBytes.Length );  //mStream.Seek( 0, SeekOrigin.Begin );  RijndaelManaged aes = new RijndaelManaged();aes.Mode = CipherMode.ECB;aes.Padding = PaddingMode.PKCS7;aes.KeySize = 128;aes.Key = bKey;//aes.IV = _iV;  CryptoStream cryptoStream = new CryptoStream(mStream, aes.CreateDecryptor(), CryptoStreamMode.Read);try{byte[] tmp = new byte[encryptedBytes.Length + 32];int len = cryptoStream.Read(tmp, 0, encryptedBytes.Length + 32);byte[] ret = new byte[len];Array.Copy(tmp, 0, ret, 0, len);return Encoding.UTF8.GetString(ret);}finally{cryptoStream.Close();mStream.Close();aes.Clear();}
}

十六进制字符串转byte数组

/// <summary>
///
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
private byte[] hexStringToByteArray(string strHex)
{strHex = strHex.Replace(" ", "");byte[] buffer = new byte[strHex.Length / 2];for (int i = 0; i < strHex.Length; i += 2){buffer[i / 2] = (byte)Convert.ToByte(strHex.Substring(i, 2), 16);}return buffer;
}

C#的AES加密解密(ECB)相关推荐

  1. Javascript实现AES加密解密(ECB/CBC)

    环境配置 js文件https://code.google.com/archive/p/crypto-js/downloads 在线AES加密解密地址http://tool.chacuo.net/cry ...

  2. AES加密解密(ECB模式)

    高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES, ...

  3. 理解AES加密解密的使用方法

    很多人对于AES加密并不是很了解,导致互相之间进行加密解密困难. 本文用简单的方式来介绍AES在使用上需要的知识,而不涉及内部算法.最后给出例子来帮助理解AES加密解密的使用方法. AES的麻烦 相比 ...

  4. C语言实现AES加密解密

    AES加密是美国联邦政府采用的一种块加密标准,如今已经被全世界广为使用.嵌入式开发中我们也经常会用到加密解密算法,如果没有硬件模块来实现,就需要用到C代码软件实现.下面介绍调用mbedTLS中的AES ...

  5. AES加密解密算法的C代码实现

     AES 加密解密的原理我就不说了, 弟兄们自己上百度去查, 文章很多. 我这里只列出从网上获取的代码的实现, 我修改了一些, 可以很方便的使用到你的代码里面. AES 比DES算法的强度更强.A ...

  6. AES加密解密(含python解析工具)

    url:https://web.ewt360.com/register/#/login 升学登录密码加密 aes简介: 密钥K:用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的.密钥为接 ...

  7. C#常用加密解密方法(AES加密解密)

    在日常开发过程中,总会遇到需要加密解密的需求,这里我整理了C#常用的加密解密方法分享给大家. 先看看加密的基本概念: "加密",是一种限制对网络上传输数据的访问权的技术.原始数据( ...

  8. AES加密解密(java、web、app)

    AES加密解密(java.web.app) AES加密解密(java.web.app) java端 Web端 ios端 AES加密解密(java.web.app) java端 package com. ...

  9. AES加密解密(CBC模式)

    高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES, ...

最新文章

  1. win10下gnuplot的安装和使用
  2. 隔空操控iPhone!苹果新获悬停手势专利
  3. RedisTemplate
  4. C4C和CRM里获取当前登录用户分配的Organization Unit信息
  5. iOS 多参数 ...NS_REQUIRES_NIL_TERMINATION 的写法
  6. 紧急不代表重要:管理时间的六个秘密
  7. debian下ror新建项目报错解决
  8. Numpy之Broadcasting
  9. 从数据库读取数据后输出XML
  10. perl判断变量是数值_Perl学习12之defined undef使用
  11. LINUX SHELL使用while循环数组
  12. 妙趣横生的算法(C语言实现 第2版)pdf
  13. VMware14安装步骤
  14. 一阶电路误差分析_自动控制原理 | 时域分析法
  15. 《Erlang程序设计》第十六章 OTP概述
  16. PTC Creo 5.0.2.0 + HelpCenter Win64 中文破解版
  17. [USACO18JAN] Lifeguards S
  18. int x=3,y=2;则表达式x+=x*=y+8的值为(60)
  19. 实战技法 - 短线操盘 (2)
  20. 海康威视的视频如何显示在web页面上显示

热门文章

  1. VC2008 NewControl 示例
  2. python猫抓老鼠_利用python如何实现猫捉老鼠小游戏
  3. 常见网络协议总结(五层自顶向下)
  4. 相机调试-tuning常见缩写汇总
  5. Swagger 接口分组
  6. php imap 安装_php7安装imap扩展
  7. 天津计算机专业,天津的大学计算机专业排名
  8. mysql 常用查询语句
  9. START 0.296.1 中文版 (腾讯官方云游戏平台)
  10. MYSQL 递归树表函数